Ajax Livesearch Return 500 (internal server error)

Saya mau buat Ajax livesearch di Laravel mengikuti tutorial ini

https://www.youtube.com/watch?v=WnJaOFdCWrU&t=318s

Tapi ga keluar hasil search nya. Di inspect element di consolenya error "500 (Internal Server Error)"

Script html

    <input type="text" name="search" id="search">
    <div id="search_list"></div><br>

Script Ajax

        $(document).ready(function(){
            $('#search').on('keyup',function(){
                var query = $(this).val();
                $.ajax({
                    url:"search",
                    type:"GET",
                    data:{'search':query},
                    success:function(data){
                        $('#search_list').html(data);
                    }
                });
            });
        });

Script Controller

    function search(Request $request){
        if ($request->ajax()) {
            $data = barang::where('nama_brg','like','%'.$request->search.'%')
            ->orwhere('bahan','like','%'.$request->search.'%')
            ->orwhere('type','like','%'.$request->search.'%')
            ->orwhere('warna','like','%'.$request->search.'%')
            ->orwhere('harga','like','%'.$request->search.'%')->get();

            $output='';
            if (count($data)>0) {
                $output = '

                <table border="1">
                    <tr>
                        <td>Nama Barang</td>
                        <td>Type</td>
                        <td>Jenis</td>
                        <td>Warna</td>
                        <td>Harga</td>
                    </tr>';

                foreach ($data as $k) {
                    ?>
                    <tr>
                        <td><?php echo $k->nama_brg; ?></td>
                        <td><?php echo $k->bahan; ?></td>
                        <td><?php echo $k->type; ?></td>
                        <td><?php echo $k->warna; ?></td>
                        <td><?php echo $k->harga; ?></td>
                    </tr>
                <?php
                }

                $output = '
                </table>';
            }else{
                $output = 'No Result';
            }
        return $output;
        }
    }

Route

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Controller;

Route::get('/', [Controller::class, 'index']);
Route::get("search", [Controller::class, 'search']);
avatar mteguhawaludin
@mteguhawaludin

3 Kontribusi 1 Poin

Diperbarui 2 tahun yang lalu

2 Jawaban:

<div>500 internal server di laravel itu terlalu umum.<br>Kamu coba akses endpoint atau halaman search langsung, agar terlihat error yang lebih jelas. Dari sana bisa ditelusuri kesalahannya di mana</div>

avatar hilmanski
@hilmanski

2665 Kontribusi 2131 Poin

Dipost 2 tahun yang lalu

Tanggapan

maaf ga paham mas, maksudnya akses endpoint itu gimana ya? Kalau untuk search nya mah, itu jadi pas diketik, ga tampil apa2

<div>coba ganti bagian urlnya</div><pre>url: "{{ url('/search') }}"</pre>

avatar Nandar
@Nandar

648 Kontribusi 204 Poin

Dipost 2 tahun yang lalu

Login untuk ikut Jawaban