Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
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
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);
}
terima kasih kak, berhasil caranya kakak, ohh iyaa maaf yg $a nya itu typo harusnya $i, makasih yaa kak @rachmatsasongko