Laravel Auto Complete Search

Oleh 4D M CHAIRUL R 23 - 100 di 25 Sep 2025 | 21:24
4D M CHAIRUL R 23 - 100

4D M CHAIRUL R 23 - 100

Siswa
Postingan: 1
Anggota sejak: 12 Sep 2025

Pertama tama buat pada bagian route web.php buat route untuk auth-complete-search seperti di code ini

 

Setelah itu pada file controllers buat “CountriesController” lalu buat code ini

 

Setelah itu sekarang kita membuat folder baru pada bagian views seperti dibawah ini

 

Pada bagian index isi code seperti ini

 

Setelah itu pergi ke web https://tarekraafat.github.io/autoComplete.js/#/installation

Klik pada bagian installation dan salin jsdelivernya script dan cssnya

 

Script pada bagian script, dan css pada bagian headnya, seperti pada gambar ini

 

 

Sekarang masih di web klick pada bagian usage lalu klik skrip dan copy script pada no ke 2

 

Lalu salin ke pada skrip di indexnya

 

Kembali ke web sekarang copy configurationnya pada no ke 3 pada bagian advanced

 

Lalu salin ke bagian config pada script tadi,

Apabila berhasil akan muncul seperti ini

 

Sekarang masih pada web, pergi ke bagian configuration, lalu filter, lalu klik async

 

Copy codenya, lalu paste pada bagian data

(perbaikan code  pada bagian script dikarenakan error)

<script>

    const autoCompleteJS = new autoComplete({

        selector: "#autoComplete",

        placeHolder: "Search for Country...",

        data: {

            src: async (query) => {

                try {

                    console.log('Searching for:', query);

                   

                    // Fetch data from API

                    const source = await fetch(`{{ url('auth-complete-search/countries/search') }}/${query}`);

                    const data = await source.json();

                   

                    console.log('API Response:', data);

                   

                    // Transform data to just return array of names

                    return data.map(item => item.name);

                } catch (error) {

                    console.error('Search error:', error);

                    return [];

                }

            },

            cache: false

        },

        threshold: 1,

        debounce: 300,

        searchEngine: "strict",

        resultsList: {

            element: (list, data) => {

                console.log('Results list data:', data);

                if (!data.results.length) {

                    // Create "No Results" message element

                    const message = document.createElement("div");

                    message.setAttribute("class", "no_result");

                    message.innerHTML = `<span>Found No Results for "${data.query}"</span>`;

                    list.prepend(message);

                }

            },

            noResults: true,

            maxResults: 15,

            tabSelect: true

        },

        resultItem: {

            element: (item, data) => {

                // Modify Results Item Style

                item.style = "display: flex; justify-content: space-between;";

                // Modify Results Item Content

                item.innerHTML = `

                <span style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden;">

                    ${data.match}

                </span>`;

            },

            highlight: true

        },

        events: {

            input: {

                selection: (event) => {

                    const selection = event.detail.selection.value;

                    autoCompleteJS.input.value = selection;

                    console.log('Selected:', selection);

                }

            }

        }

    });

 

Apabila sudah seharusnya sudah berhasil untuk malakukan search seperti ini (pastikan kalian sudah mempunyai database nama nama negaranya)

25 Sep 2025 | 21:24
0 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.