#javascript #php #ajax #laravel
Вопрос:
Я пытаюсь использовать AJAX в Chrome, но это не работает. Это мой код, который вы можете увидеть ниже. Это копия моего web.php файл.
Route::view('menu','home.menu',['categories'=> AppCategories::orderBy('name')->get()->take(11),'active' => 'menu'])->name('menu');
Route::get('/products','MenuController@getproducts');
Это мой аякс
$.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);
},
});
Это код для моего метода контроллера.
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
Комментарии:
1. вид возврата(‘home.menu’,[ ‘данные’ => $коллекция, ‘категории’ =>> $категории, ]); }
Ответ №1:
Одно изменение, которое вы можете сделать, — это в Ajax для строки ниже.
data: "cat_id=" id,
Так что лучше сдать
data: {cat_id:id}
вы не используете полученное category id
от request
в своем запросе при возврате представления ,вы не передаете категории
return view('home.menu',[
'data' => $collection,
'categories'=>$categories
]);