Input data jenis array hanya tersimpan 1 character saja codeigniter

permisi semua..

saya punya form input data customer, di dalam form tersebut berisikan data detail perusahaan & data contact person yang masing-masing berbeda table (tbcp = data contact person & tbcust = data detail perusahaan), di form saya menambahkan button add new contact person dimana button tersebut untuk contact person yang lebih dari satu. saat disubmit, data berhasil input ke 2 tabel tersebut yang menjadi permasalahannya adalah di tabel 'tbcp' ada satu row yang datanya hanya tersimpan 1 character saja, row tersebut adalah row foreign key antara 'tbcp' dan 'tbcust'

berikut detailnya -controller

public function post_multiple_table(){

		$this->load->model('Multiple_model', 'multi_model', TRUE);
		$cust_input_data = array();

		$cust_input_data['nama_pt'] = $this->input->post('nama_pt');
		$cust_input_data['tipe'] = $this->input->post('tipe');
		$cust_input_data['alamat'] = $this->input->post('alamat');
		$cust_input_data['email_cust'] = $this->input->post('email_cust');
		$cust_input_data['notelp'] = $this->input->post('notelp');
		$cust_input_data['nofax'] = $this->input->post('nofax');

        $this->form_validation->set_rules('nama_orang[]', 'nama_orang', 'required|trim|xss_clean');
        $this->form_validation->set_rules('nohp[]', 'nohp', 'required|trim|xss_clean');
        $this->form_validation->set_rules('email[]', 'email', 'required|trim|xss_clean');

        if ($this->form_validation->run() == FALSE){
         echo validation_errors(); // tampilkan apabila ada error
        }else{

        $nm = $this->input->post('nama_orang');
        $result = array();
        foreach($nm AS $key => $val){
        $result[] = array(
        "nama_pt"  => $_POST['nama_pt'][$key],
        "nama_orang"  => $_POST['nama_orang'][$key],
        "nohp"  => $_POST['nohp'][$key],
        "email"  => $_POST['email'][$key]
         );
        }
   }

-model

public function create_multiple_tabel($nama_pt, $nama_orang){
		$this->db->insert('tbcust', $nama_pt);
		$this->db->insert_batch('tbcp', $nama_orang);

	}

-SS database & form tabel tbcust tabel tbcp form new customer

mohon bantuannya, terima kasih

avatar dwindach
@dwindach

4 Kontribusi 1 Poin

Diperbarui 5 tahun yang lalu

Tanggapan

  1. baca aturan main cara menampilkan gambar 2. apakah cuma satu data yang tidak tampil? atau semua data? kalau cuma satu, cek sumber data kamu, bisa jadi dari sumbernya yang salah

maaf sebelumnya, karena saya baru pertama kali post di forum, saya sudah jawab dan perbaiki ya mas, terima kasih

semua data seperti itu sampai sekarang? setiap kamu masukkan? atau cuma masalah sekali muncul?

di kode kamu ada variable "$cust_input_data" tapi ngga diapa-apain, itu untuk apa?. Bagian memasukkan nama_pt nya dimana?

"$cust_input_data" untuk input data ke table tbcust, nama_pt ke table tbcust diinput melalui "$cust_input_data", dan nama_pt ke table tbcp diinput melalui "$nm = $this->input->post('nama_orang');",

apakah ada saran lain mas untuk multiple insert nya?

2 Jawaban:

coba debug pelan-pelan, saat kamu di bagian ini: <pre> $nm = $this-&gt;input-&gt;post('nama_orang'); //keluarkan isi $nm dengan die(var_dump($nm)); </pre>

//sudah sesuai dengan yang kamu mau atau belum ? dari sini kelihatan cara kamu ngeloop dan ambil datanya nanti seperti apa

avatar hilmanski
@hilmanski

2686 Kontribusi 2135 Poin

Dipost 5 tahun yang lalu

Jawaban Terpilih

[solved]

sudah bisa terjawab dengan merubah controller & modelnya

-controller

<pre> public function simpandata() { //Untuk Validasi $this-&gt;load-&gt;library('javascript'); $this-&gt;load-&gt;model('Cust_model'); $username = $this-&gt;session-&gt;userdata('username'); $data['username'] = $username; $this-&gt;Cust_model-&gt;simpancs();

	$this-&amp;gt;load-&amp;gt;view(&#039;sales/v_header&#039;);
    $this-&amp;gt;load-&amp;gt;view(&#039;sales/v_customer&#039;,$data);
    $this-&amp;gt;load-&amp;gt;view(&#039;sales/v_footer&#039;);


}

</pre>

-model

<pre> function simpancs() { $CI =& get_instance(); $CI-&gt;load-&gt;database('default'); if(!empty($_POST['nama_pt'])) { $nama_pt = $_POST['nama_pt']; $tipe = $_POST['tipe']; $alamat = $_POST['alamat']; $email = $_POST['email']; $notelp = $_POST['notelp']; $nofax = $_POST['nofax']; $username = $_POST['username'];

		//insert
		$sql = &quot;insert into cust(nama_pt,tipe,alamat,email,notelp,nofax,username)
				values(&#039;$nama_pt&#039;,&#039;$tipe&#039;,&#039;$alamat&#039;,&#039;$email&#039;,&#039;$notelp&#039;,&#039;$nofax&#039;,&#039;$username&#039;)&quot;;
		$this-&amp;gt;db-&amp;gt;query($sql);

		$nohp = $_POST[&#039;nohp&#039;];
		$keys = count($nohp);
		for($i = 0; $i &amp;lt; $keys; $i++)
		{
			$nama_orang = $_POST[&#039;nama_orang&#039;][$i];
			$divisi     = $_POST[&#039;divisi&#039;][$i];
            $email_cp   = $_POST[&#039;email_cp&#039;][$i];
			$nohp       = $_POST[&#039;nohp&#039;][$i];
			if ($nohp&amp;gt;0)
			{
			$sqli=&quot;insert into cp(nama_pt,nama_orang,divisi,email_cp,nohp)
					values(&#039;$nama_pt&#039;,&#039;$nama_orang&#039;,&#039;$divisi&#039;,&#039;$email_cp&#039;,&#039;$nohp&#039;)&quot;;
			$this-&amp;gt;db-&amp;gt;query($sqli);
			}
		}

		return true;
	}
	else
	{
		return false;
	}
}

</pre>

avatar dwindach
@dwindach

4 Kontribusi 1 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban