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


Jawaban

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

@hilmanski

2401 Kontribusi 2006 Poin

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


coba ganti bagian urlnya
url: "{{ url('/search') }}"
avatar Nandar

@Nandar

642 Kontribusi 204 Poin


Login untuk gabung berdiskusi
premium logo tube

Hey, sedang ada diskon premium untuk akses semua kelas. Lihat di sini