お世話になっております。
削除、変更機能の動作は確認をしているのですが
何行目のIDを送っているかが現在問題になっていて、
削除はチェックボックスでチェックされた値を配列に入れてPOSTで飛ばしています。
こちらは、複数項目チェックしても値が飛んでいるのは確認済みなのですが
変更を押すと、1,2,3,4,5行目あるとして
3行目を編集して3行目の変更ボタンを押すと、最終行のIDが飛ばされてしまいます。
1,2,3,4行目の変更を押しても最終行が飛んでいます。
下記のコードはそのforeachで回して表示させてる部分だけを抜き取っています。
どのように書くと、削除で複数チェックを入れた値を取りつつ、
変更ではその行のIDが取れるようになるでしょうか?
すいませんが、よろしくお願いいたします。
PHP
1<table> 2 <tr> 3 <td><input type="checkbox" id="check_all"></td> 4 <td>ジャンルID</td> 5 <td>ジャンル名</td> 6 <td>処理</td> 7 </tr> 8<?php foreach($rows as $row){ ;?> 9 <form method="POST"> 10 <div id='categories'> 11 <tr> 12 <td><input type="checkbox" class="category" name="delete_id[]" value="<?php print h($row['genre_id']) ;?>"></td> 13 <td><input type="text" name="edit_id" value="<?php print h($row['genre_id']) ;?>" readonly="readonly"></td> 14 <td><input type="text" name="edit_name" value="<?php print h($row['genre_name']) ;?>"></td> 15 <td> 16 <input type="submit" name="change" value="変更"> 17 <input type="button" value="キャンセル"> 18 </td> 19 </tr> 20 </div> 21<?php } ?> 22 <tr> 23 <td> 24 <input type="submit" name="delete" value="チェックしたものを一括削除"> 25 </td> 26 </tr> 27 </form> 28</table>
内容を下記に変更すると
PHP
1<?php foreach($rows as $row){ ;?> 2 <form method="POST"> 3 <div id='categories'> 4 <tr> 5 <td><input type="checkbox" class="category" name="delete_id[]" value="<?php print h($row['genre_id']) ;?>" 6 </td> 7 <td><input type="text" name="edit_id" value="<?php print h($row['genre_id']) ;?>" readonly="readonly"> 8 </td> 9 <td><input type="text" name="edit_name" value="<?php print h($row['genre_name']) ;?>"> 10 </td> 11 <td> 12 <input type="submit" name="change" value="変更"> 13 <input type="reset" value="キャンセル"> 14 <input type="submit" name="delete" value="チェックした行を削除"> 15 </td> 16 </tr> 17</div> 18</form> 19<?php } ?>
このように削除を各行に入れると正常に操作することは確認しています。
が、1つの削除ボタンでチェックした行文削除できれば一番の理想ですが、
回答2件
あなたの回答
tips
プレビュー