Postingan lainnya
Ada yg tau cara mengaitkan checkbox dgn id pada database ?
Assalamu'alaikum Numpang nnya gan, ane ada problem untuk mengaitkan id pd checkbox. ane lagi bikin halaman absensi, berikut skript absensi.php :
<form action="proses_input_absensi.php" method="post">
<table id="datatable-responsive" class="table table-striped table-bordered dt-responsive nowrap" cellspacing="0" width="100%">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Hadir</th>
<th>Sakit</th>
<th>Izin</th>
<th>Alpha</th>
</tr>
</thead>
<tbody>
<?php
$query=mysql_query("SELECT * FROM user order by nama ASC");
$t=0;
$no=1;
while($data=mysql_fetch_array($query)){
?>
<tr>
<td>
<?php echo $no; ?>
<input type="hidden" name="id" value="<?php echo $data['id'];?>"/>
</td>
<td>
<?php echo $data['nama']; ?>
</td>
<td>
<?php echo "<input type=checkbox name=hadir[] value=$data[id]>";?>
</td>
<td>
<?php
echo "<input type=checkbox name=hadir[] value=$data[id]>";
?>
</td>
<td>
<?php
echo "<input type=checkbox name=hadir[] value=$data[id]>";
?>
</td>
<td>
<?php
echo "<input type=checkbox name=hadir[] value=$data[id]>";
?>
</td>
</tr>
<?php
$no++;
}
?>
</tbody>
</table>
<button type="submit" name="submit" class="btn btn-success"><i class="fa fa-save m-right-xs"></i> Simpan</button>
</form>
untuk skript proses_absensi.php dpt dari panduan yg lain. berikut :
<?php
include "koneksi.php";
$id=$_POST['id'];
if(isset($_POST['submit'])){
if(!empty($_POST['hadir'])){
//parameter
$hadir=mysql_query("UPDATE user SET hadir='3' where id='$id'");
}
if(!empty($_POST['sakit'])){
//parameter
$kd_siswa=$_POST['sakit'];
$jumlah=count($kd_siswa);
for($i=0;$i<$jumlah;$i++){
$hadir=mysql_query("insert into absensi(kd_siswa,kd_kelas,keterangan,tanggal,selesai) values('$kd_siswa[$i]','$kd_kelas','s','$tanggal','yes')",$koneksi);
}
?>
<script language="javascript">document.location.href="?page=view_absensi&kd_kelas=<?php echo $kd_kelas;?>&tanggal=<?php echo $tanggal;?>";</script>
<?php
}
if(!empty($_POST['ijin'])){
//parameter
$kd_siswa=$_POST['ijin'];
$jumlah=count($kd_siswa);
for($i=0;$i<$jumlah;$i++){
$hadir=mysql_query("insert into absensi(kd_siswa,kd_kelas,keterangan,tanggal,selesai) values('$kd_siswa[$i]','$kd_kelas','i','$tanggal','yes')",$koneksi);
}
?>
<script language="javascript">document.location.href="?page=view_absensi&kd_kelas=<?php echo $kd_kelas;?>&tanggal=<?php echo $tanggal;?>";</script>
<?php
}
if(!empty($_POST['alfa'])){
//parameter
$kd_siswa=$_POST['alfa'];
$jumlah=count($kd_siswa);
for($i=0;$i<$jumlah;$i++){
$hadir=mysql_query("insert into absensi(kd_siswa,kd_kelas,keterangan,tanggal,selesai) values('$kd_siswa[$i]','$kd_kelas','a','$tanggal','yes')",$koneksi);
}
?>
<script language="javascript">document.location.href="?page=view_absensi&kd_kelas=<?php echo $kd_kelas;?>&tanggal=<?php echo $tanggal;?>";</script>
<?php
}
}else{
unset($_POST['selesai']);
?><script language="javascript">document.location.href="?page=input_absensi&kd_kelas=<?php echo $kd_kelas;?>&tanggal=<?php echo $tanggal;?>";</script><?php
}
?>
pd bagian skript proses_absensi.php, yang baru diubah cuma bagian hadir nya saja. utk memastikan data berhasil terupdate atau tidak. dan ternyata berhasil terupdate. tp masalahnya , Hanya 1 Record Saja yg Terupdate LOL
Mohon Bantuannya
7 Jawaban:
kalau masalahnya : harunya dinamis pakai looping proses insert/updatenya.
tapi masukan kalau mau rubahnya banyak. tbl absensi isi kolomnya cuku status_kehadiran untuk menyimpan status absesnsi nah kolom status_kehadiran ini isi valuenya bisa 'h', 's', 'a', 'i' terus di viewnya pakenya bukan cekbox tapi radio button.
Kalau pake radio button, dgn name yg sama, hanya 1 saja yg terseleksi pd kolom hadir. begitu pula sakit, dll. Jd penggunaan nya per kolom bkn baris pd tbl_absensi. Kebnyakan sumber menggunakan checkbox utk kasus absensi. Hanya saja permasalahannya terletak pd fungsi "update ... where id=..". Untuk singkronisasi absensi.php dgn proses_absensi.php apakah benar? itu dia titik awal permasalahan. takutnya salah penulisan pd script absensi.php.
loh kalo absensi statusnya kan memang cuma bisa satu. kami bisa alpa dan hadir ? statusnya harus salah satu : hadir/sakit/ijin/alpha terus name yang sama itu perbaris, bukan perkolom.
untuk contoh loopingnya klo smpet hbis makan tak bantu. klo ngga ya sbaar menunggu :)
nih contoh prosesnya, semoga membantu
<?php
$siswa=array(
array('id'=>1,'nama'=>'fai 1'),
array('id'=>2,'nama'=>'fai 2'),
array('id'=>3,'nama'=>'fai 3'),
array('id'=>9,'nama'=>'fai 9'),
);
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="post">
<table border="1">
<tr>
<th width="200">Nama</th>
<th>Hadir</th>
<th>Sakit</th>
<th>Ijin</th>
<th>Alpha</th>
</tr>
<?php
foreach ($siswa as $key => $value) {
?>
<tr>
<td><?php echo $value['nama']; ?></td>
<td><input type="radio" value="H" name="siswa[<?php echo $value['id']; ?>]"></td>
<td><input type="radio" value="S" name="siswa[<?php echo $value['id']; ?>]"></td>
<td><input type="radio" value="I" name="siswa[<?php echo $value['id']; ?>]"></td>
<td><input type="radio" value="A" name="siswa[<?php echo $value['id']; ?>]"></td>
</tr>
<?php } ?>
</table>
<input type="submit" value='simpan'>
</form>
<?php
$data=$_POST;
echo(json_encode($data));
foreach ($data['siswa'] as $key => $value) {
echo " <br> Siswa dengan id ".$key." : ".$value."";
/*
update/insert ke database
insert into absensi(tgl,id_siswa,status) values (now(),$key,$value);
update absensi set status=$value where id_siswa=$key;
*/
}
?>
</body>
</html>
Kalau pake radio button kasus nya sperti ini gan jadi bkn perbaris, tapi perkolom.
terus tdk bisa memilih hadir pd nama yg lain.
kamu udah coba source code yang saya berikan belum ? diliat dan dicoba.