phpとmysqlのチェックボックスを使用して行を削除する方法
P粉982009874
2023-09-01 22:02:23
<p>データベース情報を含むテーブルを作成し、行を簡単に削除できるようにチェックボックスを作成しようとしましたが、問題が動作しません。 </p>
<p>フォームのあるボタンがあります: </p>
<pre class="brush:php;toolbar:false;"><form action="delete-register.php" method="post">
<button type="button" class="btn btn-primary"<span class="fe fe-file-plus fe-12 mr-2"></span>New</ボタン>
<button type="submit" name="delete" class="btn btn- Secondary"<span class="fe fe-trash fe-12 mr-2"></span> ;削除</ボタン>
</form></pre>
<p>チェックボックスのある行があります:</p>
<pre class="brush:php;toolbar:false;"><form action="delete-register.php" method="post">
<td>
<div class="カスタムコントロールカスタムチェックボックス">
<input type="checkbox" class="custom-control-input" id="<?php echo $row['id']; ?>" name="selected[]" value="<?php echo $row['id']; ?>">
<label class="custom-control-label" for="<?php echo $row['id']; ?>"></label>
</div>
</td>
</form></pre>
<p>また、delete-register.php: </p>
<pre class="brush:php;toolbar:false;">if (isset($_POST['delete'])) {
if (isset($_POST['selected'])) {
foreach ($_POST['selected'] as $id) {
$query = "DELETE FROM registers WHERE id = $id";
mysqli_query($conn, $query);
}
header('場所: registers.php');
出口;
}
}</pre>
<p>問題は、「selected」が常に空であるため、データベースから何も削除されないことです。
この問題はどうすれば解決できますか? </p>
送信されるデータは
の範囲内であることに注意してください。<form>....</form>
フォームが 2 つあるため、最初のフォームで送信ボタンをクリックしても、2 番目のフォームのデータはサーバーに送信されません。
したがって、2 番目の形式を次のように変更します:
リーリー【補足説明】
削除をトリガーする最初のフォームにこだわりたい場合は、次のようにしてください:
による送信のトリガーを容易にするために、2 番目のフォームに
id=form2これは変更されたコードです:
リーリー