Skip to content
Advertisement

Error Ajax and Laravel 500 (Internal Sever Error)

I’m attempting to use AJAX in Chrome, but it’s not working. This is my code, which you can see below. This is a copy of my web.php file.

Route::view('menu','home.menu',['categories'=> AppCategories::orderBy('name')->get()->take(11),'active' => 'menu'])->name('menu');
Route::get('/products','MenuController@getproducts');

This is my ajax

$.ajax({
      type: "GET",
      dataType:'html',
      url: "{{url('/products')}}",
      data: "cat_id="+ id,
      success: function(response){
        console.log(response)
        $("#productData").html(response)
      },
      error: function(data) {
        console.log('Error:', data);
      },
    });

This is the code for my controller method.

    public static function getproducts(Request $request)
    {
        get productsd = $request->cat_id;
        $categories = Categories::orderBy('name')->get()->take(11);
        $collection = DB::table('products')
                      ->join('product_category', 'products.id','=', 'product_category.product_id')
                      ->where('product_category.category_id', '=', $category_id)
                      ->get();
        return view('home.menu',[
            'data' => $collection,
        ]);
    }
FacadeIgnitionExceptionsViewException: Undefined variable: categories (View: /Applications/XAMPP/xamppfiles/htdocs/shop/resources/views/home/menu.blade.php) in file /Applications/XAMPP/xamppfiles/htdocs/shop/resources/views/home/menu.blade.php on line 28

Advertisement

Answer

One change you can do is in Ajax for below line.

data: "cat_id="+ id,

So better to pass

data: {cat_id:id}

you are not using received category id from request in your query while returning view ,you are not passing categories

return view('home.menu',[
            'data' => $collection,
            'categories'=>$categories
        ]);
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement