ホームページ  >  に質問  >  本文

phpとmysqlのチェックボックスを使用して行を削除する方法

<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粉982009874P粉982009874386日前520

全員に返信(1)返信します

  • P粉006540600

    P粉0065406002023-09-02 18:45:55

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

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

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

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

    リーリー

    【補足説明】

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

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

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

    リーリー

    返事
    0
  • キャンセル返事