チェックボックス配列のチェック無しデータのPHP取得についてにご質問になります。
以下などを参考にhiddenを入れる方法を入れてみました。
https://woodin.info/techlife/phpcheckboxno/
結果としてはうまく行かず、チェック有無を問わず、hidden側のデータも取ってしまっていました。
配列だと駄目なのか?とも思ってるのですが、じゃあどうするか、で詰まっております。
HTML
1<table class="daily_report_matter" id="daily_report_matter"> 2 <tr> 3 <td> 4 <input type="hidden" name="check[]" value="0"> 5 <input type="checkbox" name="check[]" value="1">あり 6 </td> 7 <td style="text-align: center"> 8 <input type="button" name="append" id="append" value="+" onclick="addRow(this)"> 9 </td> 10 </tr> 11</table>
JavaScript
1function addRow(obj){ 2 // ボタン押下行のクローン作成 3 var tr = obj.parentNode.parentNode; 4 var clone = tr.cloneNode(true); 5 initCloneData(clone); 6 tr.parentNode.insertBefore(clone, tr.nextSibling); 7} 8 9function initCloneData(clone){ 10 clone.children[0].children[0].checked = false; 11}
PHP
1$check = filter_input(INPUT_POST, 'check',FILTER_DEFAULT,FILTER_REQUIRE_ARRAY);
HTMLのテーブルは列をいくつか省略していますが、コードはこういうものになります。
2列目の"+"ボタンを押すと行が増えていくテーブルになります。
そのため、チェックボックスについては、配列にしました。
これで実行し、PHPで取得した値は以下でした。
行数1つ(チェック無し):0
行数1つ(チェックあり):0,1
行数2つ(チェック無し):0,0
行数2つ(2行目チェックあり):0,0,1
どうにも、チェック有無を問わず、hiddenは取ってしまっているみたいなのです。
これを、行の数分のデータとなり、チェックがある場合の行は値が1、無い場合は値が0、となる作りにするにはどうすればよろしいでしょうか?
回答1件
あなたの回答
tips
プレビュー