Postingan lainnya
Data tidak muncul padahal di respond muncul semua
Saya mau munculin pilihan provinsi dan kabupaten dengan ajax dari tabel di database.
Tapi data hanya muncul di respond, tidak muncul di front-end nya (di dropdows) dengan plugin Select2. Dropdown nya di modal. Modal yang saya pakai bikinan sendiri.
Ajax nya seperti ini
$("#prov").select2({ dropdownParent: $('#input'),
placeholder: 'Pilih Provinsi',
ajax: {
url: "prov",
processResults: function ({
data }) {
return {
results: $.map(data, function(item) {
return {
id: item.id,
text: item.nama
}
})
}
}
}
});
di Controller nya pake function ini
$data = provinsi::where('nama', 'LIKE', '%'.request('q').'%')->get();
return response()->json($data);
Hasilnya seperti ini
di network muncul tapi di dropdown tidak muncul
Ada solusi kah agan - agan sekalian?
3 Jawaban:
<div>Untuk menampilkan opsi provinsi dan distrik dengan ajax dari tabel dalam database, kamu dapat mengikuti langkah-langkah berikut:<br><br>1. Buat aksi controller yang akan mengembalikan data JSON untuk opsi provinsi dan distrik.<br>2. Di tampilan (view), gunakan plugin select2
untuk membuat daftar dropdown untuk opsi provinsi dan distrik.<br>3. Gunakan AJAX untuk memanggil aksi controller dan mengisi daftar dropdown dengan data JSON.<br><br>Berikut contoh cara melakukannya:<br><br>Controller<br><br></div><pre>public function prov()
{
$data = provinsi::where('nama', 'LIKE', '%'.request('q').'%')->get();
return response()->json($data);
}</pre><div><br><br>Tampilan (View)<br><br></div><pre><script>
$(document).ready(function() {
$("#prov").select2({
dropdownParent: $('#input'),
placeholder: 'Pilih Provinsi',
ajax: {
url: "prov",
processResults: function ({ data }) {
return {
results: $.map(data, function(item) {
return {
id: item.id,
text: item.nama
}
})
}
}
}
});
});
</script></pre><div><br>Kode ini akan membuat daftar dropdown untuk opsi provinsi dan distrik. Ketika pengguna memilih provinsi, opsi distrik untuk provinsi tersebut akan ditampilkan.<br><br>Catatan: Kamu mungkin perlu menyesuaikan klausa where
dalam aksi controller untuk memfilter hasil berdasarkan masukan pengguna.</div>
Tanggapan
koding sudah sama persis seperti di pertanyaan saya bang. Ketika saya cek di inspect, di tab network bagian respond, semua data database saya muncul. Tapi di dropdown tidak muncul
Berarti yang salah ada pada, cara kamu menampilkannya ke frontend. Pastikan element yang kamu pilih memang ada atau kalau menggunakan library, coba disertakan infonya
Sama saya juga masih belum bisa manipulasi processResults di select2. Paling saran saya:
- Untuk controller diubah seperti ini:
$data = provinsi::select('id', 'nama AS text')->where('nama', 'LIKE', '%'.request('q').'%')->get();
return response()->json([
'results' => $data,
'pagination' => array(
'more' => false
)]);
- Untuk processResults di Ajax diubah seperti ini:
processResults: function (data) {
return data;
},