Welcome Guest, Not a member yet? Register   Sign In
post array of data to database table field
#11

[eluser]redraw[/eluser]
no i have several input type of trans
#12

[eluser]Brad K Morse[/eluser]
Fill in 5 or 6 of them, then do the print_r of it and paste the output here.
#13

[eluser]redraw[/eluser]
Array ( [0] => [1] => k [2] => NOT001 [3] => 2011-04-29 [4] => MARTIN [5] => 2011-04-29 11:45:09 [6] => 1 [7] => 0 [8] => 500.04.001 [9] => BT [10] => 12000 )
#14

[eluser]toopay[/eluser]
@redraw : coba post controller, view dan model disini. Ntar kubantu. 'Undefined offset' itu berarti index array-mu kelebihan atau kurang, sementara 'Undefined variable' itu berarti kamu mau mengambil nilai sebuah variabel yang belum terdefinisi...
#15

[eluser]redraw[/eluser]
Wah ada temen dari indo jga.. hehe

ini mas controllernya
Code:
function gl_simpan_entri()
    {
        $data = $this->fungsi->accept_data(array_keys($_POST));
        $this->gl_model->simpan_master_entri($data);
        $this->gl_transenjur_umum();
    }
        function gl_simpan_trans()
    {
        $data = $this->fungsi->accept_data(array_keys($_POST));
        $this->gl_model->simpan_master_trans($data);
        $this->gl_transenjur_umum();
    }

ini modelnya :
Code:
function simpan_master_trans()
{    
foreach($_POST['trans'] as $data){        
  $username = $this->input->post('trans[1][user_id]');
  $master_id = $this->input->post('master_id');
  $no_bukti = $this->input->post($i.'[no_bukti]');
  $tanggal = $this->input->post('trans[1][tanggal]');
  $code = $this->input->post('trans[1][code]');
  $keterangan = $this->input->post('keterangan[]');
  $keterangan = strtoupper($keterangan);
  $jenis = $this->input->post('trans[1][jenis]');
  $nilai = $this->input->post('trans[1][nilai]');
  $nilai = str_replace(',','',$nilai);
  $aktif = $this->input->post('trans[1][aktif]');
  $waktu = $this->input->post('trans[1][waktu]');
  $awal = $this->input->post('trans[1][awal]');

  $data = array(
  'master_id'=>$master_id,
  'no_bukti'=>$no_bukti,
  'tanggal'=>$tanggal,
  'code'=>$code,
  'keterangan'=>$keterangan,
  'jenis'=>$jenis,
  'user'=>$username,
  'nilai'=>$nilai,
  'aktif'=>$aktif,
  'waktu'=>$waktu,
  'awal'=>$awal
  );
  $this->db->insert('gl_master',$data);
  }
}

ini view :
Code:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');?>
<head>
<style type="text/css" title="currentStyle">
    @import "<?php echo base_url();?>asset/theme/style1/demo_page.css";
    @import "<?php echo base_url();?>asset/theme/style1/demo_table_jui.css";
    @import "<?php echo base_url();?>asset/theme/style1/jquery-ui-1.8.4.custom.css";
    div.table_Wrapper { border:10px solid blue; }
</style>

[removed]
    var id = document.getElementById("id").value;
    
    jQuery(document).ready(function(){
    jQuery("#form1").validationEngine('attach');
    });
    
    $(function(){
    $('.date').calendar();
    $('input[name=no_bukti]').focus();
    var uraian = $('input[name=uraian]').val();
    $('.uraian').html(uraian);        
    });
    
    function addFormField()
    {
        var no_bukti2 = document.form1.no_bukti.value;
        var jenis_trans = document.form1.jenis.value;
        var tanggal = document.form1.tanggal.value;
    
        if (jenis_trans == 'd')
            {
                jenis_trans = 'k';
            }
            else
            {
                jenis_trans = 'd';
            }
    
    
    
    $("#divTxt").append("<p id='row" + id + "'>    <a class='button buttonwhite smallbtn' href='[removed]void(0)>x</a>&nbsp;&nbsp;&lt;input name='trans[" + id + "][master_id]' type='hidden' id=trans[" + id + "][master_id] value=''&gt;&lt;input name='trans[" + id + "][jenis]' id='trans[" + id + "][jenis]' type='hidden' value='" + jenis_trans + "'>&lt;input name='trans[" + id + "][no_bukti]' id='trans[" + id + "][no_bukti]' type='hidden' value='" + no_bukti2 + "'&gt;&lt;input type='hidden' size='50' name='trans[" + id + "][tanggal]'     id='trans[" + id + "][tanggal]' value='"+ tanggal +"'>&lt;input type='hidden' size='50' name='trans[" + id + "][user]'     id='trans[" + id + "][user]' value='&lt;?php echo from_session('user_id'); ?&gt;'&gt;&lt;input type='hidden' size='50' name='trans[" + id + "][waktu]'     id='trans[" + id + "][waktu]' value='&lt;?php echo date("Y-m-d H:i:s"); ?&gt;'>&lt;input type='hidden' size='50' name='trans[" + id + "][aktif]'     id='trans[" + id + "][aktif]' value='1'&gt;&lt;input type='hidden' size='50' name='trans[" + id + "][awal]'     id='awal" + id + "' value='0'><select name='trans[" + id + "][code]' class='trans[][code]' id='trans[" + id + "][code]'>&lt;?php    foreach($detail_nomer->result() as $row){ echo '<option value='.$row->code.'>' . $row->code .' - '. $row->account . '</option>';} ?&gt;</select>&nbsp;&nbsp;&lt;input type='text' size='80' name='trans[" + id + "][keterangan]'    id='trans[" + id + "][keterangan]' class='trans[][keterangan]'&gt;&nbsp;&nbsp;&lt;input class='trans[][nilai]' type='text' size='50' name='trans[" + id + "][nilai]' id='trans[" + id + "][nilai]'&gt;&lt;p>");
    
    
    $('#row' + id).highlightFade({
        speed:1000
    });
    
    id = (id - 1) + 2;
    document.getElementById("id").value = id;
    }

    function removeFormField(id)
    {
        $(id).remove();
    }

    function simpan_trans()
    {    
     var tot=0;
    var count = document.ftrans.getElementsByClassName('trans[][nilai]');
    var nilai = document.form1.nilai.value;
    nilai = nilai.replace(/,/g,"");


     for(var i=0; i < count.length; i++)
     {
    
     na = parseInt(count[i].value.replace(/,/g,""));
     tot = tot + parseInt(count[i].value.replace(/,/g,""));
     }

        if (nilai != tot){
            alert("Jumlah transaksi tidak sama. Mohon cek kembali.");
            }else{    
            var nama = confirm('Anda yakin ingin menyimpan transaksi ini?');
            if (nama == true){
                enabled();                
                send_form(document.form1,"haluser/gl_simpan_entri/","#content");
                send_form(document.ftrans,"haluser/gl_simpan_trans/","#content");
                
            }else{
                window;
            }
        
        }
    }
    
    
    
[removed]
&lt;/head&gt;
...>> bersambung
#16

[eluser]redraw[/eluser]
sambungan view dari atas:
Code:
&lt;body&gt;
<h3><p align="center"><b>ENTRI JURNAL UMUM</b></p></h3>
<div class='title'>Entri Jurnal </div>
&lt;form name='form1' id='form1' method='post' action=''&gt;
    &lt;?php
        echo form_hidden('master_id');    
    ?&gt;

&lt;input name="awal" type="hidden" value="1"&gt;
&lt;input name="waktu" type="hidden" value="&lt;?php echo date("Y-m-d H:i:s"); ?&gt;"&gt;
<table width='100%'>
    <tr>
      <td width="7%" class='a_right'>Nota</td>
      <td class='a_center'>:
      &lt;input name="no_bukti" type='text' id="no_bukti" style='width:19%'&gt;
      &lt;input name='tanggal' type='text' id="tanggal" style='width:6%'&gt;&lt;/td>
    </tr>
    <tr>
      <td class='a_right'>Uraian</td>
      <td class='a_center'>:
      &lt;input name='keterangan' type='text' id="keterangan" style='width:33%'&gt;&lt;/td>
    </tr>
    <tr>
        <td class='a_right'>Code</td>
      <td class='a_center'>:
          <select name="code" id="code">
            &lt;?php
            foreach($detail_nomer->result() as $row){
                    echo "<option value=".$row->code.">" . $row->code ." - ". $row->account . "</option>";
            }
         ?&gt;
          </select>
          <select name="jenis" id="jenis">
            <option value="d">Debet</option>
            <option value="k">Kredit</option>
          </select></td>
    </tr>
    <tr>
        <td height="26" class='a_right'>Jumlah</td>
        <td class='a_center'>:
          &lt;input type='text' name='nilai' id='nilai'&gt;
      &lt;input name="aktif" type="hidden" value="1"&gt;&lt;/td>
    </tr>
</table>
&lt;/form&gt;
    <div class='the_footer a_left'>
        <a id="displayText" href='[removed]toggle();'>Entri</a>
        <a id="kosong" name="kosong" class='button buttonwhite smallbtn' href='[removed]void(0)'>Kosongkan Form</a>
    </div>
</div>
<br/>

<div class='title'>Transaksi Jurnal </div>
&lt;form name='ftrans' id="ftrans" method='post' action=''&gt;
&lt;?php
        echo form_hidden('master_id');    
    ?&gt;
&lt;input name="aktif" type="hidden" value="1"&gt;
&lt;input name="awal" type="hidden" value="0"&gt;
&lt;input name="waktu" type="hidden" value="&lt;?php echo date("d-m-d H:i:s"); ?&gt;"&gt;
&lt;input type="hidden" id="id" value="1"&gt;

  <table width="100%" border="0">
    <tr>
      <td width="84%" valign="baseline"><div id="divTxt"></div>
        <a id="tambah" href='[removed]void(0)' name="tambah" class='button buttongreen smallbtn'>Tambah</a></td>
      <td valign="baseline">&nbsp;</td>
    </tr>
    <tr>
      <td valign="baseline">&nbsp;</td>
      <td valign="baseline" width="16%">&nbsp;</td>
    </tr>
  </table>
&lt;/form&gt;
<div class='the_footer a_left'>
&nbsp;<a class='button buttongreen smallbtn' name="simpan" href='[removed]void(0)'>SIMPAN</a>
<a class='button buttonwhite smallbtn'>Batal</a>
<span id="total"></span>
  <span id="total2"></span>

</div>
</div>

mohon bantuannya mas.. terimakasih
#17

[eluser]redraw[/eluser]
jadi di dalam hal view ada 2 form..
satu form statis (form1) satu lagi form dinamis(ftrans)(akan muncul otomatis jika di klik tombol tambah

sebenernya form sudah berhasil tersimpan dengan script model seperti ini :
Code:
function simpan_master_trans()
{
foreach($_POST['trans'] as $data){
$this->db->insert('gl_master',$data);
}
}

tapi sya mau definisiin dulu setiap post dari form tersebut biar bisa di edit dulu


in my view there is 2 form..
one static form (form name = form1) and dinamic form (form name = ftrans). the dinamic one will add otomatically if add button is clicked..

thank you
#18

[eluser]toopay[/eluser]
Kulihat di view file-mu, kok tidak ada yang memakai nama 'trans', tapi di controller kok kamu mencari $_POST['trans']? Atau di bagian lain controllermu(yang tidak ter-posting disini) kamu punya fungsi untuk mengeset 'trans'? Coba lihat controller kamu.

Lalu ini juga kok aneh, di kontroller kamu ada code berikut
Code:
// Di Kontroller :
$data = $this->fungsi->accept_data(array_keys($_POST));
// Ini berarti variabel POST sudah kamu pack ke dalam $data toh?
$this->gl_model->simpan_master_trans($data);
...
// Di Model :
function simpan_master_trans()
{  
   // Lah kok di model kamu nyari $POST lagi? Maksudku, kenapa tidak di pre-pend/disiapkan dulu
   // Data yang mau diproses di kontroller sebelum kamu kirim ke model?
   foreach($_POST['trans'] as $data){
#19

[eluser]redraw[/eluser]
di file view ada input form dengan nama 'trans[id][nama_form]' ada di javascript ini mas :
Code:
$("#divTxt").append("<p id='row" + id + "'>    <a class='button buttonwhite smallbtn'>x</a>&nbsp;&nbsp;&lt;input name='trans[" + id + "][master_id]' type='hidden' id=trans[" + id + "][master_id] value=''&gt;&lt;input name='trans[" + id + "][jenis]' id='trans[" + id + "][jenis]' type='hidden' value='" + jenis_trans + "'>&lt;input name='trans[" + id + "][no_bukti]' id='trans[" + id + "][no_bukti]' type='hidden' value='" + no_bukti2 + "'&gt;&lt;input type='hidden' size='50' name='trans[" + id + "][tanggal]'     id='trans[" + id + "][tanggal]' value='"+ tanggal +"'>&lt;input type='hidden' size='50' name='trans[" + id + "][user]'     id='trans[" + id + "][user]' value='&lt;?php echo from_session('user_id'); ?&gt;'&gt;&lt;input type='hidden' size='50' name='trans[" + id + "][waktu]'     id='trans[" + id + "][waktu]' value='&lt;?php echo date("Y-m-d H:i:s"); ?&gt;'>&lt;input type='hidden' size='50' name='trans[" + id + "][aktif]'     id='trans[" + id + "][aktif]' value='1'&gt;&lt;input type='hidden' size='50' name='trans[" + id + "][awal]'     id='awal" + id + "' value='0'><select name='trans[" + id + "][code]' class='trans[][code]' id='trans[" + id + "][code]'>&lt;?php    foreach($detail_nomer->result() as $row){ echo '<option value='.$row->code.'>' . $row->code .' - '. $row->account . '</option>';} ?&gt;</select>&nbsp;&nbsp;&lt;input type='text' size='80' name='trans[" + id + "][keterangan]'    id='trans[" + id + "][keterangan]' class='trans[][keterangan]'&gt;&nbsp;&nbsp;&lt;input class='trans[][nilai]' type='text' size='50' name='trans[" + id + "][nilai]' id='trans[" + id + "][nilai]'&gt;&lt;p>");

satu baris di fungsi append.
jadi input dengan nama 'trans' akan muncul otomatis klo sya klik tombol tambah.

untuk pertanyaan mas yg ini
"// Lah kok di model kamu nyari $POST lagi? Maksudku, kenapa tidak di pre-pend/disiapkan dulu
// Data yang mau diproses di kontroller sebelum kamu kirim ke model?"

mohon kasih tau caranya buat menyiapkan data post di controller sebelum masuk ke model.. yg perlu diingat nama input post yang akan disiapkan itu bersifaat array multidimensional.. jadi nama input pos yang keluar kira2 seperti ini :
'trans[0][no_bukti]', 'trans[0][nilai]'
trans[1][no_bukti]', 'trans[1][nilai]' dan seterusnya

mohon bantuannya mas...
#20

[eluser]toopay[/eluser]
Misal kamu punya array multidimensional macam gitu, berarti untuk memprosesnya gini :
Code:
//... taruh di kontroller :
$y = 0;
while($y < count($_POST['trans']))
{
   // Cek dulu, ada ndak key array-nya
   if (array_key_exists($y, $_POST['trans']))
   {
      $data = array(
                  'no_bukti' => $_POST['trans'][$y]['no_bukti'],
                  'nilai'    => $_POST['trans'][$y]['nilai'],
                  //...definisikan semua varibel yang mau kamu insert ke database
      );
      // Nah kalau uda, baru kirim ke model
      $this->gl_model->simpan_master_trans($data);
   }
   $y++;
}

//... taruh di model :

// Harus kamu kasih expected variabel di model kamu, nih aku pakai $newdata sebagai contoh.
function simpan_master_trans($newdata = array())
{    
   // Nah, karena udah kamu pack di kontroller, di model kamu tinggal kasih validasi doang,
   // trus bisa langsung insert
   if( ! empty($newdata)) $this->db->insert('gl_master',$newdata);
}




Theme © iAndrew 2016 - Forum software by © MyBB