Menyertakan Banyak POST Data Didalam Checkbox Tabel
Jadi dimisalakan disini saya memiliki sebuah tabel guru dengan nilai guru_id dan guru_nama, kemudian saya akan menggunakan checkbox supaya bisa mengirim banyak data sekaligus berdasarkan guru_id yang di cek, maka saya perlu mengumpulkan nilainya didalam array dengan contoh kode seperti berikut :
<td><input type="checkbox" name="guru_id[]" value="<?=$row['guru_id']?>" ></td>
Nah masalahnya yang nantinya terkirim tentu hanya nilai guru_id dengan tipe checkbox sementara disini saya ingin ikut menyertakan guru_nama yang datanya masih bersangkutan dengan nilai guru_id.
Jika saya menggunakan cara biasa dengan melakukan input type hidden maka yang terjadi adalah seluruh data akan terkirim bukan hanya nilai guru_id dengan guru_nama yang bersangkutan tapi nanti guru_nama yang guru_idnya tidak di ceklis akan ikut terkirim
Anda bisa mengujinya sendiri menggunakan post data, nantinya akan ikut terkirim atau setidaknya jika data yang ceklis lebih dari satu maka system akan menganggapnya hanya satu saja, karena nilai tersebut tentu tidak disimpan kedalam array
Untuk mengatasi masalah tersebut tentu kita perlu menambahkan fungsi javascript kemudian nilai nama guru yang akan dikirim katakanlah baik itu id atau namenya perlu di identifikasi berdasarkan nilai unik guru_id sehingga nanti kita bisa meloopingnya berdasarkan trigger dari guru_id yang diceklis
Contoh script berikut mungkin bisa menjadi gambaran bagaimana memenuhi kebutuhan dalam contoh kasus diatas
<?php //source code untuk operasi database ini menggunakan framework zeel php. require "database/Settings.php"; require "app/core/Splautoload.php"; ?> <?php $theme->head('Checkbox test'); $theme->css(); ?> <div class="container"> <div class="row"> <div class="alert alert-warning col-12"><p>Disini kita akan mencoba menyertakan banyak data didalam sebuah checkbox</p></div> <?php if($_SERVER['REQUEST_METHOD']=='POST') { $data=$_POST['guru_id']; //data merupakan nilai array guru id dan perlu dibaca //sehingga bisa digunakan untuk mengidentifikasi setiap post guru_nama yang memiliki nilai uni dari guru id print_r($data); foreach ($data as $person) { //$Person merupakan nilai unik dari guru_id yang sebelumnya name nya disimpan dalam bentuk array /*name="guru_nama[<?=$row['guru_id']?>]"*/ $guru_nama = $_POST['guru_nama'][$person]; //tampilkan nama guru yang di ceklis //echo $nama_guru //atau jika idnya //echo $person //lanjutkan eksekusi perintah submit data ke database didalam looping } } ?> <div class="table table-responsive"> <form action="<?php echo $_SERVER['REQUEST_URI']?>" method="POST"> <div class="float-right mb-4"> <button type="submit" class="btn btn-primary btn-md">Kirim data</button></div> <h5>Checkbox Test</h5> <table class="table"> <thead> <tr> <th>#</th> <th>NO</th> <th>Nama Guru</th> <th>Usia</th> <th>Alamat</th> </tr> </thead> <tbody> <?php $guru = $obj->selectTable('guru',null,'ORDER by guru_id'); $no=1; while($row=$guru->fetch(PDO::FETCH_ASSOC)): ?> <tr> <td><input type="checkbox" name="guru_id[]" value="<?=$row['guru_id']?>" onclick="toggleData('<?=$row['guru_id']?>','<?=$row['guru_nama']?>')"></td> <input type="hidden" id="guru_nama_<?=$row['guru_id']?>" name="guru_nama[<?=$row['guru_id']?>]" value="<?=$row['guru_nama']?>"> <td><?=$no?></td> <td><?=$row['guru_nama']?></td> <td><?=$row['guru_usia']?></td> <td><?=$row['guru_alamat']?></td> </tr> <?php $no++; endwhile; ?> </tbody> </table> </form> </div> </div> </div> <script> // Fungsi untuk menangani peristiwa klik pada checkbox function toggleData(guru_nama) { // Mengubah nilai input tersembunyi sesuai dengan data yang diinginkan document.getElementById('guru_nama').value = guru_nama; } </script> <?=$theme->footer()?>
0 Response to "Menyertakan Banyak POST Data Didalam Checkbox Tabel"
Post a Comment
Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin