Saya cuba mengumpul kotak pilihan yang dipilih, mengemas kini atau memadamkannya dan menghantar borang ini ke php melalui ajax. Saya sangat baru dalam hal ini dan telah menghabiskan beberapa hari cuba mencari jalan.
Penyelidikan web tidak memberi saya sebarang hasil, saya cuba menghantar ajax dengan beberapa cara berbeza - tiada hasil. Semasa menggunakan PHP sahaja, saya mendapat borang dengan tatasusunan pilih dan id.
Bagaimana untuk menjadikannya berfungsi dengan AJAX?
Borang Saya. Ia diletakkan di dalam meja. Badan jadual berada dalam fail php. Terdapat bentuk lain dalam tetingkap modal dalam dokumen itu, hanya menyebut jika mungkin terdapat konflik.
<div class="inner"> <div class="option"> <div class="e-table"> <div class="table-responsive table-lg mt-3"> <form method="post" id="menu_form"> <table class="table table-bordered"> <select name="select" id="menu" > <option value="select">Please select</option> <option value="set-active">Set active</option> <option value="set-not-active">Set not active</option> <option value="delete">Delete</option> </select> <thead> <tr> <th class="text-nowrap align-middle"><input type="checkbox" id="select-all"></th> <th>Name</th> <th>Role</th> <th>Status</th> <th>Action</th> </tr> </thead> <tbody id="users_data"> <input type="submit" value="submit" name="submit_btn" /> </tbody> </table> </form> </div> </div> </div> </div>
Ini adalah perkara yang saya cuba lakukan menggunakan AJAX.
<script type="text/javascript"> $(document).ready(function() { $('#menu_form').on('submit', function (e) { e.preventDefault(); $.ajax({ type: 'post', url: "process.php", data: $('#menu_form').serialize(), success: function (response) { console.log(response) } }); }); });
PHP saya. Badan jadual dan mengendalikan penyerahan borang. Hanya rawatan untuk salah satu pilihan yang ditunjukkan supaya tidak membuat soalan lebih panjang, pilihan lain adalah hampir sama.
<td class="text-nowrap align-middle"><input type="checkbox" name="update_id" value="<?= $row['id'] ?>"></td> <td class="text-nowrap align-middle"><?= $row['name']; ?></td> <td class="text-nowrap align-middle"><?= $row['role']; ?></td> <td class="text-center align-middle"> <?php if ($row['status'] == 1): ?> <i class="fa fa-circle active-circle"></i> <?php else: ?> <i class="fa fa-circle not-active-circle" style="color:grey"></i> <?php endif; ?> </td> <td class="text-center align-middle"><button class="btn btn-sm btn-outline-secondary badge" type="button" onclick="edit_record(<?= $row['id']; ?>)" >Edit</button> <button class="btn btn-sm btn-outline-secondary badge" type="button" onclick="delete_record(<?= $row['id']; ?>)" ><i class="fa fa-trash"></i></button> </td> </tr> if(isset($_POST['submit_btn'])) { $idArray = $_POST['update_id']; $idString = implode(',', $idArray); if (isset($_POST['select']) && $_POST['select'] == 'set-active') { $statement = $pdo->prepare("UPDATE user SET status = 1 WHERE id IN ($idString)"); $result = $statement->execute(); if ($result) { $response = array('status' => true, 'message' => 'Record edited successfully.'); }else{ $response = array('status' => true, 'message' => 'Error'); } echo json_encode($response); }
Pada pendapat saya, masalahnya terletak di sini:
dalam borang bukan sebahagian daripada badan/muatan yang dihantar dengan permintaan POST (lagipun, ia adalah butang dan tidak mengandungi sebarang maklumat berguna kepada pelayan).
Jadi semakan
dan semua blok kod di dalam blokif()
di atas akan sentiasaif()
检查将始终为 false,并且if()
falseif()
akan gagal. tidak akan dilaksanakan. 🎜