Diskon 80% terbatas! Masukkan kupon "merdeka" di kelas apa saja

cara insert data dari input array?

gan saya ada input kaya gini di file file.blade.php

@for($i = 1; $i <= $data->jumlah_anak; $i++)
  <div class="form-group">
    <label>Nama anak ke {{ $i }}</label>
    <input type="text" name="namaAnak[]" placeholder="Nama anak ke {{ $i }}">
  </div>
@endfor

terus controller saya kaya gini

public function saveDataFamily(Request $req, $id)
{
 $nama = $req->namaAnak; // ada 3 input anak yg saya input yaitu : arik,agus,gabriella
 $table = data_karyawan::find($id);
 for ($i = 0; $i < count($nama); $i++) {
 $hasil = $nama[$a++].','; // saya sudah coba echo $hasil dan yg keluar 3 anak data yg sudah saya masukan tadi
 $table->nama_anak = $hasil; // tapi giliran saya save datanya ke table, cuman nama gabriella aja yg masuk
 $table->save();
 dd($hasil); // dan ketika saya dd() $hasil emang bener cuman gabriella aja yg keluar
 }
}

saya mau 3 nama anak itu bisa masuk ke field nama_anak, tolong donk gan gmana caranya, makasih

avatar tejo
@tejo

82 Kontribusi 8 Poin

Diperbarui 7 tahun yang lalu

2 Jawaban:

Jawaban Terpilih

yang pertama sepertinya gan keliru disini

$hasil = $nama[$a++].',';

saya ga lihat ada deklarasi $a sebelumnya, harusnya itu

$hasil = $nama[$i].',';

tapi itupun masih belum benar karena dengan deklarasi seperti itu, $hasil jadi terdeklarasi berulang sampai akhirnya cuma value terakhir yang dipakai, yaitu gabriella.

yang benar dideklarasi dulu $hasil sebagai empty string, baru ditambahkan nama masing2 anak yang muncul dalam loop. setelah itu di close loopnya, baru save ke table

kira2 seperti ini

public function saveDataFamily(Request $req, $id)
{
  $nama = $req->namaAnak;
  $table = data_karyawan::find($id);
  $hasil = ''; // deklarasi dulu $hasil sebagai empty string;
  for ($i = 0; $i < count($nama); $i++)
  {
    if($i == count($nama)-1) // cek apa $i adalah index terakhir dari nama
    {
      $hasil .= $nama[$i]; // kalau terakhir ga perlu tambah ','
      // perhatikan $hasil .= (bukan deklarasi tapi penambahan strings)
      // bukan $hasil = (kalau begini jadi deklarasi)
    }
    else
    {
      $hasil .= $nama[$i].','; // kalau bukan terakhir tambahkan ','
    }
  }
  // close loop sehingga $hasil valuenya 'arik,agus,gabriella'
  // kalau tanpa if else di atas jadinya 'arik,agus,gabriella,'
  // baru di masukkan ke table
  $table->nama_anak = $hasil;
  $table->save();
  dd($hasil);
}

avatar rachmatsasongko
@rachmatsasongko

410 Kontribusi 426 Poin

Dipost 7 tahun yang lalu

terima kasih kak, berhasil caranya kakak, ohh iyaa maaf yg $a nya itu typo harusnya $i, makasih yaa kak @rachmatsasongko

avatar tejo
@tejo

82 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban