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

avatar Fauzi212
@Fauzi212

6 Kontribusi 1 Poin

Diperbarui 6 tahun yang lalu

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.

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 6 tahun yang lalu

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.

avatar Fauzi212
@Fauzi212

6 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

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 :)

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 6 tahun yang lalu

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>
avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 6 tahun yang lalu

Kalau pake radio button kasus nya sperti ini gan jadi bkn perbaris, tapi perkolom.

avatar Fauzi212
@Fauzi212

6 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

terus tdk bisa memilih hadir pd nama yg lain.

avatar Fauzi212
@Fauzi212

6 Kontribusi 1 Poin

Dipost 6 tahun yang lalu

kamu udah coba source code yang saya berikan belum ? diliat dan dicoba.

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban