cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memadam baris menggunakan kotak semak dalam php dan mysql

<p>Saya mencipta jadual dengan maklumat pangkalan data dan cuba membuat kotak pilihan untuk dapat memadamkan baris dengan lebih mudah, tetapi sesuatu tidak berfungsi. </p> <p>Saya mempunyai butang dengan borang: </p> <pre class="brush:php;toolbar:false;"><form action="delete-register.php" kaedah="post"> <jenis butang="butang"kelas="btn btn-primary"><span class="fe fe-file-plus fe-12 mr-2"></span>New</ butang> <jenis butang="serahkan"nama="padam"kelas="btn btn-secondary"><span class="fe fe-trash fe-12 mr-2"></span> ;Padam</butang> </form></pre> <p>Saya mempunyai baris dengan kotak pilihan: </p> <pre class="brush:php;toolbar:false;"><form action="delete-register.php" kaedah="post"> <td> <div class="kotak semak tersuai kawalan tersuai"> <jenis input="kotak semak"kelas="id-kawalan tersuai"<?php echo ?>" value="<?php echo $row['id'];>"> <kelas label="label-kawalan tersuai" untuk="<?php echo $row['id']; </div> </td> </form></pre> <p>Juga padam-daftar.php: </p> <pre class="brush:php;toolbar:false;">if (isset($_POST['delete'])) { if (isset($_POST['selected'])) { foreach ($_POST['selected'] sebagai $id) { $query = "DELETE FROM registers WHERE id = $id"; mysqli_query($conn, $query); } header('Lokasi: registers.php'); keluar; } }</pre> <p>Masalahnya ialah "dipilih" sentiasa kosong, jadi tiada apa-apa yang dipadamkan daripada pangkalan data. Bagaimanakah saya boleh menyelesaikan masalah ini? </p>
P粉982009874P粉982009874457 hari yang lalu573

membalas semua(1)saya akan balas

  • P粉006540600

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

    Sila ambil perhatian bahawa data yang diserahkan akan berada dalam skop <form>....</form>

    Oleh kerana anda mempunyai dua borang, apabila anda mengklik butang hantar dalam borang pertama, ia tidak akan menghantar data borang kedua ke pelayan.

    Jadi tukar bentuk kedua kepada:

    <form action="delete-register.php" method="post">
    
          <div class="custom-control custom-checkbox">
           <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>
    
    <input type=submit name=delete>
    
    </form>

    [Penjelasan tambahan]

    Jika anda ingin menggunakan borang pertama untuk mencetuskan pemadaman maka sila:

    1. Dalam borang pertama, tukar padam daripada "Serah" kepada "Butang"
    2. Tambah acara onclick pada butang padam ini supaya ia mencetuskan penyerahan borang kedua
    3. Pastikan terdapat medan tersembunyi bernama "padam" dalam borang kedua kerana anda menetapkan untuk memasukkan medan ini dalam skrip PHP
    4. anda mungkin perasan bahawa saya telah menambah id=form2 dalam borang ke-2 untuk memudahkan penyerahan melalui borang1

    Ini ialah kod yang diubah suai:

    <form method="post">
       <button type="button" class="btn btn-primary"><span class="fe fe-file-plus fe-12 mr-2"></span>New</button>
    
       <button type="button" name="delete" class="btn btn-secondary"
    onclick='document.getElementById("form2").submit()';
       ><span class="fe fe-trash fe-12 mr-2"></span>Delete</button>
    
    </form>
    
    
    
    <form id=form2 action="delete-register.php" method="post">
    
       <div class="custom-control custom-checkbox">
           <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>
    
    <input type=hidden name=delete value="delete">
    
    </form>

    balas
    0
  • Batalbalas