Insert data checkbox + textfield

Wendy Ardhira · Oct 23, 2012
Mohon penjelasan dan solusinya.....
Saya punya table berkas berikut :
CREATE TABLE `riwayat_takah` (
  `nip` varchar(20) NOT NULL,
  `fid_takah` varchar(5) NOT NULL,
  `status` enum('ADA','TIDAK ADA') NOT NULL,
  `note` varchar(255) NOT NULL,
  KEY `id_takah` (`fid_takah`),
  KEY `nip` (`nip`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `ref_takah` (
  `id_takah` varchar(5) NOT NULL,
  `nama_takah` varchar(255) NOT NULL,
  PRIMARY KEY  (`id_takah`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

jumlah record ref_takah 35 record, pada form yang saya buat data "status" ditampilkan dalam bentuk checkbox menggunakan array, sedangkan data "note" hanya ditampilkan jika checkbox status dicentang dan juga menggunakan array. ketika saya submit, yang berhasil insert ke database hanya data status, sedangkan isi dari textbox note tidak insert ke database.

Mohon bantuannya gimana supaya text yang diketikkan pada textbox note tersimpan dalam field note pada tabel riwayat_takah?

terima kasih...
Silahkan login untuk menjawab!
-1
Loading...
Ellyx Christian · Oct 23, 2012 · 0 Suka · 1 Tidak Suka
bisa lihat kode yang sudah dibuat?
0
Loading...
Wendy Ardhira · Oct 24, 2012 · 0 Suka · 0 Tidak Suka
saya kurang paham tentang konsep array pada PHP, terutama sekali bagaimana mengirimkan nilai variabel array unt disimpan dalam database, berikut sepotong script unt form nya :
$no=1;
while ($r=mysql_fetch_array($sqltakah)){
	if ($r[nip]!=null) {
                echo "<tr><td align=center><font color='#32CD32'>$no</font></td>";
                echo "<td><font color='#32CD32'>$r[nama_takah]</font></td>";
                echo "<td><center><font color='#32CD32'>ADA</font></center></td>";                
                echo "<td align='center'>
                      <input type='checkbox' name='cek[]' id=id$no value='$r[id_takah]' checked >$r[id_takah]</td>";                
                echo "<td><span id='other1' style='display:inline'>
                      <input type='text' name='otherjob'/>
                     </span></td>";
             } else {
                echo "<tr><td align=center><font color='#DC143C'>$no</font></td>";
                echo "<td><font color='#DC143C'>$r[nama_takah]</font></td>";
                echo "<td><center><font color='#DC143C'>TIDAK ADA</font></center></td>";
                echo "<td align='center'>
                      <input type='checkbox' name='cek[]' id=id$no value='1'
                      onCheck='centang(this.value);' >$r[id_takah]</td>";
                echo "<td><span id='other' style='display:none'>
                      <input type='text' name='otherjob'/>
                     </span></td>";
            }
            $no++;
          }

Saya mau ketika cekbox ADA dicentang, otomatis textfield akan tampil, dan user dapat mengetikkan sesuatu pada textfield tsb, dan akan disimpan dalam database, jika cekbox "TIDAK ADA" dicentang, maka tidak akan masuk dalam database. Maaf, script unt operasi database nya udah saya hapus, soalnya saya mau mencari metode lain yg lebih gampang...
0
Loading...
Ellyx Christian · Oct 24, 2012 · 0 Suka · 0 Tidak Suka
COba seperti
$no=1;
while ($r=mysql_fetch_array($sqltakah)){
	if ($r[nip]!=null) {
                echo "<tr><td align=center><font color='#32CD32'>$no</font></td>";
                echo "<td><font color='#32CD32'>$r[nama_takah]</font></td>";
                echo "<td><center><font color='#32CD32'>ADA</font></center></td>";                
                echo "<td align='center'>
                      <input type='checkbox' name='cek[$no]' id=id$no value='$r[id_takah]' checked >$r[id_takah]</td>";                
                echo "<td><span id='other1' style='display:inline'>
                      <input type='text' name='otherjob[$no]'/>
                     </span></td>";
             } else {
                echo "<tr><td align=center><font color='#DC143C'>$no</font></td>";
                echo "<td><font color='#DC143C'>$r[nama_takah]</font></td>";
                echo "<td><center><font color='#DC143C'>TIDAK ADA</font></center></td>";
                echo "<td align='center'>
                      <input type='checkbox' name='cek[$no]' id=id$no value='-1'
                      onCheck='centang(this.value);' >$r[id_takah]</td>";
                echo "<td><span id='other' style='display:none'>
                      <input type='text' name='otherjob[$no]'/>
                     </span></td>";
            }
            $no++;
          }
kemudian menyimpannya seperti
if($_POST){
	foreach($_POST['cek'] as $no => $nilai){
		if($nilai == -1 ){ // berarti TIDAK ADA yang dicentang
			//lakukan hal lain
		}else{
			$otherjob = $_POST['otherjob'][$no];
			//simpan data
		}
	}
}