Proses Form Dinamis Dengan PHP MySQL
12 January 2016 | Tags: Form dinamis, Proses Form dinamis
Materi proses form dinamis dengan PHP MySQL melupakan lanjutan dari materi membuat form input dinamis dengan jquery. Silahkan mempelajari materi tersebut untuk memahami konsep form dinamis.
Kali ini kita akan membuat aplikasi sederhana untuk memasukkan data karyawan dan hoby yang dimilikinya. Disini kita membutuhkan 2 tabel, yang pertama untuk menyimpan data karyawan dan berikutnya untuk data hoby. Adapun diagram E-R nya bisa digambarkan seperti berikut:
Untuk membuat tabel diatas silahkan jalan perintah sql berikut pada console MySql anda.
CREATE TABLE `tbl_karyawan` ( `id_karyawan` int(10) unsigned NOT NULL AUTO_INCREMENT, `nama_karyawan` varchar(50) DEFAULT NULL, `umur_karyawan` int(19) DEFAULT NULL, PRIMARY KEY (`id_karyawan`) ); CREATE TABLE `tbl_hoby` ( `rincian_hoby` varchar(50) DEFAULT NULL, `jenis_hoby` varchar(30) DEFAULT NULL, `id_karyawan` int(10) DEFAULT NULL COMMENT 'FK tbl_karyawan' );
Adapun Source Code dari Proses Form Dinamis Dengan PHP MySQL adalah sebagai berikut:
Script untuk form.php
<?php /*=============================================================================== Membuat Form Input Dinamis dengan PHP By: BliKomKom Website: http://www.komang.my.id Source code ini bisa anda gunakan dan modifikasi sesuai kebutuhan ===============================================================================*/ ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Metode Biseksi</title> <link href="style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script> <script language="javascript"> function tambahHobi() { var idf = document.getElementById("idf").value; var stre; stre="<p id='srow" + idf + "'><input type='text' size='40' name='rincian_hoby[]' placeholder='Masukkan Hobi' /> <input type='text' size='30' name='jenis_hoby[]' placeholder='Utama/Sambilan' /> <a href='#' style=\"color:#3399FD;\" onclick='hapusElemen(\"#srow" + idf + "\"); return false;'>Hapus</a></p>"; $("#divHobi").append(stre); idf = (idf-1) + 2; document.getElementById("idf").value = idf; } function hapusElemen(idf) { $(idf).remove(); } </script> </head> <body> <div id="container"> <h2>Input Data Karyawan</h2> <form method="post" action="proses.php"> <input id="idf" value="1" type="hidden" /> <p> Nama : <input name="nama_karyawan" type="text" id="nama" size="40"> </p> <p> Umur : <input name="umur_karyawan" type="text" id="nama" size="8"> </p> <button type="button" onclick="tambahHobi(); return false;">Tambah Rincian Hobi</button> <div id="divHobi"></div> <button type="submit">Simpan</button> </form> </div> </body> </html>
Script proses.php
<?php mysql_connect("localhost","root",""); mysql_select_db("tutorial"); $nama_karyawan=$_POST['nama_karyawan']; $umur_karyawan=$_POST['umur_karyawan']; function proses_hoby($id_karyawan) { if(isset($_POST["rincian_hoby"])) { $hoby=$_POST["rincian_hoby"]; reset($hoby); while (list($key, $value) = each($hoby)) { $rincian_hoby =$_POST["rincian_hoby"][$key]; $jenis_hoby =$_POST["jenis_hoby"][$key]; $sql_hoby ="INSERT INTO tbl_hoby(rincian_hoby,jenis_hoby,id_karyawan) VALUES('$rincian_hoby','$jenis_hoby','$id_karyawan')"; $hasil_hoby =mysql_query($sql_hoby); } } } $sql="INSERT INTO tbl_karyawan(nama_karyawan,umur_karyawan) VALUES('$nama_karyawan','$umur_karyawan')"; $hasil=mysql_query($sql); $id_karyawan=mysql_insert_id(); if($hasil) { proses_hoby($id_karyawan); echo "Data berhasil diinput"; } else { echo "Data Gagal diinput"; } ?>
Adapun hasilnya jika dijalankan adalah seperti berikut ini:
Kemudian anda cek pada MySQL maka datanya akan terlihat seperti berikut”
Source Code dan database dari materi Proses Form Dinamis Dengan PHP MySQL dapat anda unduh disini !
Komentar tentang Proses Form Dinamis Dengan PHP MySQL
maaf, tolong tambahkan button EDITnya…terimakasih….
mas komang, saya mau tanya. kalau seandainya data yang di input itu berupa combobox. data combo box itu di ambil dari database, nah itu gimana yah nampilin combobox nya di form dinamis? makasih
Tinggal buatkan variabel PHP yang bernilai tag html untuk membuat combo, dan pada function javascript untuk menambah form dinamis disertakan paramater dari variabel PHP tersebut.
Contoh:
1. INISIALISASI VARIABEL di PHP
<?php
$sl_coa="<select name=coa[] class=form-control input-sm>";
$sql="SELECT * FROM nama_tabel";
$hasil=mysql_query($sql);
while($row=mysql_fetch_assoc($hasil))
{
$sl_coa.="<option value=".$row[‘nama_kolom1’].">".$row[‘nama_kolom2’])."</option>";
}
$sl_coa.="</select>";
?>
2. Pembuatan fungsi di Javascript
<script language="javascript">
function addRincian(sl_coa) {
stre=stre+sl_coa;
}
</script>
3. Pemanggilan fungsi Javascript
<a onclick="addRincian(‘<?php echo $sl_coa;?>’); return false;">Tambah Rincian</a>
Bli Komang,
Mohon dibantu, tyang mau bikin form survey untuk user seluruh Indonesia. jadi teknisnya:
User memasukan kode cabang (angka 4 digits) – maka akan muncul Nama Cabangnya (text)- dan nama engineernya bisa dipilih pake dropdown.
Suksme
Itu bisa pake AJAX, saya sudah posting artikel Select Box Dinamis menggunakan Ajax PHP dan MySql. Tinggal pelajari dan modif sedikit
itu misal hoby sama dalam satu id apa bisa? gimana cara buat agar tidak bisa di input kalo hoby nya sama
Hobby itu kebetulan Ngetik biasa jadi ada kemungkinan sama. Biar tidak ada yang sama, bisa saja pada tabel dibuatkan Superkey (Kumpulan atribut yang unique) misalnya id_karyawan dan jenis_hoby, atau pada proses simpan dibuatkan query dulu, cek apakah sudah ada id dan hoby yang sama. Jika ada jangan dilanjutkan ke proses simpan.
tolong dibuatkan fasilitas editnya mas komang, udah nyoba ngoprek buat ditambahin biar bisa ngedit di form edit ttep stuck gabisa
ok, nanti akan diposting
tolong dibuatkan fasilitas editnya mas komang, udah nyoba ngoprek buat ditambahin biar bisa ngedit di form edit ttep stuck gabisa
Bli saya coba modify codingnya tapi kesulitan bisa saya kirim kemana ya codingan saya biar bli pelajari
Jangan menyerah, coba dulu
saya sudah coba. tapi, textfield tidak bertambah ketika di klik button tambah hobi.
cek javascript-nya, path-nya. Intinya jangan cepat menyerah
mas saya menggunakan mysqli, ketika script nya sudah saya ubah sesuai dengan mysqli, muncul eror pada baris ke 17 yaitu di “$hasil_hoby = mysql_query($conn,$sql_hoby);” . Tetapi data karyawan berhasil terinput namun pada table hoby tetap kosong. itu kenapa ya mas kira2? terimakasih sebelumnya
kemungkinan di sql untuk tabel Hobby. Cek dengan teliti
Saya buat form input dengan combo box dinamis yang isinya dari database tapi saat di klik simpan isi dari combo box dinamis tersebut tidak ikut tersimpan. Bisakah bapak membantu saya?
Coba pelajari disini
http://komang.my.id/2017/06/11/penerapan-form-input-dinamis-pada-pembuatan-transaksi-jurnal-umum-akuntansi/
mas Komang, saya coba form input dinamis menggunakan combobox sesuai dengan petunjuk yang ada di kolom komentar, tp kok gak jalan ya….m
masalah mungkin Value di Combobox. Cara sederhana-nya coba tampilkan hasil proses pada saat submit dengan perintah echo. Itu memudahkan kita mencari salahnya dimana.
kalo tabelnya cuma 1 saja tapi beberapa field dijadikan form dinamis bisa gak gan?
Form dinamis itu untuk menambahkan form secara dinamis sesuai keperluan. Untuk memastikan bisa tidaknya sesuai kasus anda bisa dicoba dulu buatnya.
Up menu edit nya dong gan
mang komang buatin menu editnya dong
Seharunya dicoba dulu
Terimakasih Kak Komang, ternyata ada yang simple ya. Tak coba2 dulu, ijin contek ya kak… 😉
Mang Komang,
Buatkan untuk codingannya yang pake Codeigniter donk.. therimakasih ^^
http://komang.my.id/2017/06/11/penerapan-form-input-dinamis-pada-pembuatan-transaksi-jurnal-umum-akuntansi/
Pak Komang,,
Form editnya apakah sudah release ?? Saya stuck di edit table dinamisnya.
http://komang.my.id/2017/06/11/penerapan-form-input-dinamis-pada-pembuatan-transaksi-jurnal-umum-akuntansi/
kalau untuk Update datanya ada pak script-nya?
http://komang.my.id/2017/06/11/penerapan-form-input-dinamis-pada-pembuatan-transaksi-jurnal-umum-akuntansi/
maksudnya ganti stt jadi 1 apa ya mas. maap saya ga ngerti
kalo 1 berarti aktif
<?php
include "../koneksi.php";
$nama_karyawan = $_POST['nama_karyawan'];
$umur_karyawan = $_POST['umur_karyawan'];
function proses_hoby($id_karyawan)
{
if (isset($_POST["rincian_hoby"])) {
$hoby = $_POST["rincian_hoby"];
reset($hoby);
while (list($key, $value) = each($hoby)) {
$rincian_hoby = $_POST["rincian_hoby"][$key];
$jenis_hoby = $_POST["jenis_hoby"][$key];
$sql_hoby = "INSERT INTO tbl_hoby(rincian_hoby,jenis_hoby,id_karyawan)
VALUES('$rincian_hoby','$jenis_hoby','$id_karyawan')";
$hasil_hoby = mysqli_query($sql_hoby);
}
}
}
$sql = "INSERT INTO tbl_karyawan(nama_karyawan,umur_karyawan)
VALUES('$nama_karyawan','$umur_karyawan')";
$hasil = mysqli_query($koneksi, $sql);
$id_karyawan = mysqli_insert_id();
if ($hasil) {
proses_hoby($id_karyawan);
echo "Data berhasil diinput";
} else {
echo "Data Gagal diinput";
}
Mas, bisa bantu di bagian proses.php, error di line 16 dan 24
Nb : sy menggunakan php versi 7
Pesan error-nya apa?
ini pesan errornya mas :
tulisannya data berhasil di input tp data tidak masuk
Warning: mysqli_insert_id() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\boo\formdinamis\proses.php on line 24
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\xampp\htdocs\boo\formdinamis\proses.php on line 16
Data berhasil diinput
Ada sedikit perbedaan sintak menggunakan mysql dengan mysqli. Coba lihat di link ini:
https://www.php.net/manual/en/mysqli.insert-id.php