phpとmysqlのチェックボックスを使用して行を削除する方法
P粉982009874
P粉982009874 2023-09-01 22:02:23
0
1
575
<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>
P粉982009874
P粉982009874

全員に返信(1)
P粉006540600

送信されるデータは <form>....</form>

の範囲内であることに注意してください。

フォームが 2 つあるため、最初のフォームで送信ボタンをクリックしても、2 番目のフォームのデータはサーバーに送信されません。

したがって、2 番目の形式を次のように変更します:

リーリー

【補足説明】

削除をトリガーする最初のフォームにこだわりたい場合は、次のようにしてください:

  1. 最初のフォームで、削除を「送信」から「ボタン」に変更します。
  2. この削除ボタンに onclick イベントを追加して、2 番目のフォームの送信をトリガーします
  3. PHP スクリプトにこのフィールドを含めるように指定したため、2 番目のフォームに「delete」という非表示フィールドがあることを確認してください。
  4. お気づきかもしれませんが、form1 による送信のトリガーを容易にするために、2 番目のフォームに id=form2
  5. を追加しました。

これは変更されたコードです:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート