Hallo! Selamat Datang di Marketplace produk digital, Freelancer terbaik di indonesia (67423 Members, 783 Products, 5280 Topic, 12953 Comments)

Membuat Multiple Insert form inputan dengan Framework Codeigniter

Dibuat
Login Terakhir 3 Bulan lalu,
Telah Dilihat 2657 Kali
pramadians Mengatakan : Sultan Account
  1. Assalamualaikum Warahmatullahi Wabarakatuh...
  2.  
  3. Selamat Siang Admin dan teman-teman...
  4.  
  5. Saya sedang membuat form inputan dimana inputan tersebut harus menggunakan multiple insert agar data yang di inputkan tersebut dapat diproses dengan sekali proses saja. Adapun kendala yang sedang saya alami yaitu, ketika saya melakukan proses input, data yang masuk ke database hanya data terakhir yang diinputkan. Adapun bentuk interface gambar nya saya upload di lampiran.
  6.  
  7. Saya menggunakan framework codeigniter.
  8. Adapun usaha yang telah saya lakukan adalah sebagai berikut :
  9.  
  10. View :
  11.  
  12. <tbody>
  13. <?php
  14. $no=0;
  15. foreach ($kas->result_array() as $a):
  16. $no++;
  17. $idkas =$a['id_kas'];
  18. $kodekas =$a['kode_kas'];
  19. $namakas =$a['nama_kas'];
  20. $uangkas =$a['uang_kas'];
  21. ?>
  22.  
  23. Controller :
  24.  
  25. function simpan_kas(){
  26. if($this->session->userdata('akses')=='2'){
  27.  
  28. $idkas =$this->input->post('id_kas');
  29. $kodekas =$this->input->post('kode_kas');
  30. $namakas =$this->input->post('nama_kas');
  31. $uangkas =str_replace(',', '', $this->input->post('uang_kas'));
  32.  
  33. $this->U_aktiva->simpan_kas($idkas,$kodekas,$namakas,$uangkas);
  34.  
  35. redirect('upk/Uneraca');
  36. }
  37. else
  38. {
  39. echo "Halaman tidak ditemukan";
  40. }
  41. }
  42.  
  43. Model :
  44.  
  45. function simpan_kas($idkas,$kodekas,$namakas,$uangkas){
  46. $hsl=$this->db->query("INSERT INTO tbl_kas
  47. (id_kas,kode_kas,nama_kas,uang_kas) VALUES
  48. ('$idkas','$kodekas','$namakas','$uangkas'),
  49. ('$idkas','$kodekas','$namakas','$uangkas'),
  50. ('$idkas','$kodekas','$namakas','$uangkas')
  51. ");
  52. return $hsl;
  53. }
  54.  
Ada 1 File Kiriman :
1. form_kas.jpg (191 KB)

Ada 12 Jawaban

Iwan Nanang Setiawan
commented on 20 Okt 2021 01:48:53
  1. Assalamualaikum,..
  2. Coba di implementasi code ini ke dalam project nya mas
  3.  
  4. #Controller
  5. Coba ubah script pada function simpan_kas di controller nya dengan code dibawah ini. nge ubah nya sebelum else
  6.  
  7. $post = $this->input->post();
  8. $kodeKas = $post['kode_kas'];
  9. $data = array();
  10.  
  11. foreach ($kodeKas as $key => $value) {
  12. $data[] = array(
  13. 'id_kas' => $post['id_kas'],
  14. 'kode_kas' => $post['kode_kas'][$key],
  15. 'nama_kas' => $post['nama_kas'][$key],
  16. 'uangkas' => $post['uangkas'][$key],
  17. );
  18. }
  19.  
  20. $this->U_aktiva->multi_insert('psb_keluar_sekolah_tujuan', $data);
  21.  
  22. #Model
  23. Untuk model nya, coba buat function baru, contoh "multi_insert"
  24. dan ini coba masukkan code nya dibawah ini
  25.  
  26. function multi_insert($tbl = null, $data = array())
  27. {
  28. $jumlah = count($data);
  29.  
  30. if ($jumlah > 0)
  31. {
  32. $this->db->insert_batch($tbl, $data);
  33. }
  34. }
  35.  
  36. kira aja ini bisa membantu mas, mohon maaf kalo codingan nya aga berantakan, karna saya masih pemula
pramadians
commented on 21 Okt 2021 10:00:21
  1. Assalamualaikum,.. Terimakasih sebelumnya mas sudah meluangkan waktunya untuk menjawab masalah ini. Setelah saya coba gunakan script dari mas iwan, ternyata masih terdapat error pada foreach di controller nya.
pramadians
commented on 22 Okt 2021 08:55:48
  1. Assalamualaikum,.. Mohon pencerahan nya Admin dan teman-teman.......
PHPMU.COM Support
commented on 22 Okt 2021 10:06:59
Salah satu jawaban terbaik,..
  1. Assalamualaikum,.. berikut cara mudah membuat multiple insert :
  2.  
  3. <form action="" method='POST'>
  4. <input type='text' id='id_kas' name='id_kas[]'>
  5. <input type='text' id='kode_kas' name='kode_kas[]'>
  6. <input type='text' id='nama_kas' name='nama_kas[]'>
  7. <input type='text' id='uang_kas' name='uang_kas[]'>
  8. <hr>
  9. <input type='text' id='id_kas' name='id_kas[]'>
  10. <input type='text' id='kode_kas' name='kode_kas[]'>
  11. <input type='text' id='nama_kas' name='nama_kas[]'>
  12. <input type='text' id='uang_kas' name='uang_kas[]'>
  13. <hr>
  14. <input type='text' id='id_kas' name='id_kas[]'>
  15. <input type='text' id='kode_kas' name='kode_kas[]'>
  16. <input type='text' id='nama_kas' name='nama_kas[]'>
  17. <input type='text' id='uang_kas' name='uang_kas[]'>
  18. <hr>
  19. <input type="submit" name='submit' value="Simpan">
  20. </form>
  21.  
  22. <?php
  23. if (isset($_POST['submit'])){
  24. for ($i=0; $i < count($this->input->post('kode_kas')); $i++) {
  25. if (cetak($this->input->post('kode_kas')[$i])!=''){
  26. $kas = array('id_kas'=>$this->input->post('id_kas')[$i],
  27. 'kode_kas'=>$this->input->post('kode_kas')[$i],
  28. 'nama_kas'=>$this->input->post('nama_kas')[$i]),
  29. 'uang_kas'=>$this->input->post('uang_kas')[$i]));
  30. $this->db->insert('tbl_kas', $kas);
  31. }
  32. }
  33. }
  34. ?>
pramadians
commented on 22 Okt 2021 10:38:05
  1. Assalamualaikum,.. Terimakasih Admin sudah meluangkan waktu nya untuk memberikan solusi. Namun script form saya menggunakan java script. Adapun Script dari form inputan tersebut adalah sbb :
  2.  
  3. <form class="form" method="post" action="Uneraca/simpan_kas">
  4.  
  5. <div class="col-sm-12">
  6. <div class="form-group " align="center">
  7. <button class="btn btn-primary add_field_button5"> + Inputan Kas</button>
  8. </div>
  9. </div>
  10.  
  11. <script>
  12. $(document).ready(function() {
  13. var max_fields = 10;
  14. var wrapper = $(".input_fields_wrap5");
  15. var add_button = $(".add_field_button5");
  16. var x = 0;
  17. $(add_button).click(function(e) {
  18. e.preventDefault();
  19. if(x < max_fields){
  20. x++;
  21.  
  22. $(wrapper).append( '<div class="form-group">'+
  23. '<table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%">'+
  24. ' <td> </td><tr> '+
  25.  
  26. '<div >'+
  27. '<div class="col-sm-2">'+
  28. '<div class="form-group">'+
  29. '<input type="text" class="form-control" enctype="multipart/form-data" name="kode_kas" placeholder="--- Ketik Kode ---" data-toggle="">'+
  30. '</div>'+
  31. '</div>'+
  32. '</div>'+
  33.  
  34. '<div >'+
  35. '<div class="col-sm-5">'+
  36. '<div class="form-group">'+
  37. '<input type="text" class="form-control" enctype="multipart/form-data" name="nama_kas" placeholder="--- Ketik Nama ---" data-toggle="">'+
  38. '</div>'+
  39. '</div>'+
  40. '</div>'+
  41.  
  42. '<div >'+
  43. '<div class="col-sm-5">'+
  44. '<div class="form-group">'+
  45. '<input type="number" class="form-control" enctype="multipart/form-data" name="uang_kas" placeholder="--- Ketik Uang ---" data-toggle="">'+
  46. '</div>'+
  47. '</div>'+
  48. '</div>'+
  49.  
  50. '</table>' +
  51.  
  52. '<button class="btn btn-danger remove_field">Hapus Item</button>'+
  53. '<br><br></div>');
  54. }
  55.  
  56. $('#jumlah-form').val($('.aktiva').length);
  57. });
  58.  
  59. $(wrapper).on("click", ".remove_field", function(e) {
  60. e.preventDefault();
  61. $(this).parent('div').remove();
  62. x--;
  63. $('#jumlah-form').val($('.aktiva').length);
  64. });
  65. });
  66. </script>
  67.  
  68. <div class="input_fields_wrap5">
  69. <input type="hidden" id="jumlah-form" name="" value="0">
  70. </div>
  71.  
  72. <div class="form-group">
  73. <button type="submit" class="btn btn-success btn-md">Proses Kas</button>
  74. <button class="btn btn-warning btn-md" value="cancel" onclick="history.back();">Cancel</button>
  75. </div>
  76. </form>
PHPMU.COM Support
commented on 22 Okt 2021 14:11:29
Salah satu jawaban terbaik,..
  1. Assalamualaikum,.. walaupun menggunakan javascript, caranya juga sama tinggal ubah value atribut name saja :
  2.  
  3. Contoh, Dari script ini :
  4. <input type="text" class="form-control" enctype="multipart/form-data" name="nama_kas" placeholder="--- Ketik Nama ---" data-toggle="">
  5.  
  6. ubah menjadi :
  7. <input type="text" class="form-control" enctype="multipart/form-data" name="nama_kas[]" placeholder="--- Ketik Nama ---" data-toggle="">
PHPMU.COM Support
commented on 22 Okt 2021 14:12:37
Salah satu jawaban terbaik,..
  1. Assalamualaikum,.. dan satu lagi untuk enctype="multipart/form-data" tempatkan di form, bukan di inputan,.. :)
  2. <form class="form" method="post" action="Uneraca/simpan_kas" enctype="multipart/form-data">
pramadians
commented on 22 Okt 2021 14:38:02
  1. Assalamualaikum,.. Terimakasih pencerahannya Pak....
pramadians
commented on 22 Okt 2021 15:05:54
  1. Assalamualaikum,.. Setelah saya menggunakan script dari admin. Hasil inputannya masih terdapat error. adapun hasil dari inputan tersebut adalah sebagai berikut :
Terdapat 1 File dilampirkan :
1. kas.jpg (72 KB)
PHPMU.COM Support
commented on 23 Okt 2021 05:53:27
  1. Assalamualaikum,.. share disini seperti apa anda implementasikan script tersebut,..
  2. jika mengikuti script yang saya share diatas harusnya tidak error.
pramadians
commented on 25 Okt 2021 07:52:12
  1. Assalamualaikum,.. Untuk View nya, seperti ini script nya pak :
  2.  
  3. <script src="http://code.jquery.com/jquery-2.2.1.min.js"></script>
  4.  
  5. <form class="form" method="post" action="Uneraca/simpan_kas" enctype="multipart/form-data">
  6.  
  7. <div class="col-sm-12">
  8. <div class="form-group " align="center">
  9. <button class="btn btn-primary add_field_button5"> + Inputan Kas</button>
  10. </div>
  11. </div>
  12.  
  13. <script>
  14. $(document).ready(function() {
  15. var max_fields = 10;
  16. var wrapper = $(".input_fields_wrap5");
  17. var add_button = $(".add_field_button5");
  18. var x = 0;
  19. $(add_button).click(function(e) {
  20. e.preventDefault();
  21. if(x < max_fields){
  22. x++;
  23.  
  24. $(wrapper).append( '<div class="form-group">'+
  25. '<table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%">'+
  26. ' <td> </td><tr> '+
  27.  
  28. '<div >'+
  29. '<div class="col-sm-2">'+
  30. '<div class="form-group">'+
  31. '<input type="text" class="form-control" id="kode_kas" name="kode_kas[]" placeholder="--- Ketik Kode ---" data-toggle="">'+
  32. '</div>'+
  33. '</div>'+
  34. '</div>'+
  35.  
  36. '<div >'+
  37. '<div class="col-sm-5">'+
  38. '<div class="form-group">'+
  39. '<input type="text" class="form-control" id="nama_kas" name="nama_kas[]" placeholder="--- Ketik Nama ---" data-toggle="">'+
  40. '</div>'+
  41. '</div>'+
  42. '</div>'+
  43.  
  44. '<div >'+
  45. '<div class="col-sm-5">'+
  46. '<div class="form-group">'+
  47. '<input type="number" class="form-control" id="uang_kas" name="uang_kas[]" placeholder="--- Ketik Uang ---" data-toggle="">'+
  48. '</div>'+
  49. '</div>'+
  50. '</div>'+
  51.  
  52. '</table>' +
  53.  
  54. '<button class="btn btn-danger remove_field">Hapus Item</button>'+
  55. '<br><br></div>');
  56. }
  57.  
  58. $('#jumlah-form').val($('.aktiva').length);
  59. });
  60.  
  61. $(wrapper).on("click", ".remove_field", function(e) {
  62. e.preventDefault();
  63. $(this).parent('div').remove();
  64. x--;
  65. $('#jumlah-form').val($('.aktiva').length);
  66. });
  67. });
  68. </script>
  69.  
  70. <div class="input_fields_wrap5">
  71. <input type="hidden" id="jumlah-form" name="" value="0">
  72. </div>
  73.  
  74. <?php
  75. if (isset($_POST['submit'])){
  76. for ($i=0; $i < count($this->input->post('kode_kas')); $i++) {
  77. if (cetak($this->input->post('kode_kas')[$i])!=''){
  78. $kas = array('id_kas'=>$this->input->post('id_kas')[$i],
  79. 'kode_kas'=>$this->input->post('kode_kas')[$i],
  80. 'nama_kas'=>$this->input->post('nama_kas')[$i]),
  81. 'uang_kas'=>$this->input->post('uang_kas')[$i]));
  82. $this->db->insert('tbl_kas', $kas);
  83. }
  84. }
  85. }
  86. ?>
  87.  
  88. <div class="form-group">
  89. <button type="submit" class="btn btn-success btn-md">Proses Kas</button>
  90. <button class="btn btn-warning btn-md" value="cancel" onclick="history.back();">Cancel</button>
  91. </div>
  92. </form>
  93.  
  94. Sedangkan Untuk Controller nya seperti ini :
  95.  
  96. function simpan_kas(){
  97. if($this->session->userdata('akses')=='2'){
  98.  
  99. $idkas =$this->input->post('id_kas');
  100. $kodekas =$this->input->post('kode_kas');
  101. $namakas =$this->input->post('nama_kas');
  102. $uangkas =str_replace(',', '', $this->input->post('uang_kas'));
  103.  
  104. $this->U_aktiva->simpan_kas($idkas,$kodekas,$namakas,$uangkas);
  105.  
  106. redirect('upk/Uneraca');
  107. }
  108. else
  109. {
  110. echo "Halaman tidak ditemukan";
  111. }
  112. }
pramadians
commented on 25 Okt 2021 09:17:34
  1. Assalamualaikum,.. Alhamdulillah masalah telah teratasi. Terimakasih admin atas pencerahan nya. Saya mengganti script insert menjadi insert_batch. (Yang semula $this->db->insert('tbl_kas', $kas); MENJADI $this->db->insert_batch('tbl_kas', $kas);
Maaf, Untuk Memberikan Komentar Anda Harus Login !!!