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?

avatar EsaMahardika
@EsaMahardika

15 Kontribusi 0 Poin

Diperbarui 9 bulan yang lalu

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').'%')-&gt;get(); return response()-&gt;json($data); }</pre><div><br><br>Tampilan (View)<br><br></div><pre>&lt;script&gt; $(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 } }) } } } }); }); &lt;/script&gt;</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>

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 10 bulan yang lalu

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

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 10 bulan yang lalu

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;
                },
avatar devio
@devio

101 Kontribusi 46 Poin

Dipost 9 bulan yang lalu

Login untuk ikut Jawaban