当用户点击一个类别时,它将显示该类别下的产品。我在 Laravel 中使用 Ajax 完美地做到了。它在本地主机上完美运行,但问题是,当我在服务器上上传我的项目时,它会按如下方式加载产品。例如,我有类别 1、2、3、4、5。如果我先点击 2,它会加载类别 1 的产品,然后再加载类别 2 的产品。如果我点击 3,它首先加载类别 2 的产品,然后再加载类别 3 的产品。
这里是控制器代码
public function getItemByCategory(Request $request, $id) {
$category = FoodItemCategory::find($id);
$products = $category->foods()->get();
if ($request->ajax()) {
if ($products) {
$data = array();
foreach ($products as $product) {
foreach ($product->price as $price) {
$data[] = $price->discounted_price; // push the price to $data
}
}
$data['product'] = $products;
return response()->json(['status' => true, 'data' => $data]);
} else {
return response()->json(['error' => 'Opps! Somthing went wrong']);
}
} else {
return view('index', compact('categories'));
}
}
}
这里是ajax请求
function menu(id) {
$.ajax({
url: "{{ url('/items/') }}/" + id,
method: "GET",
contentType: false,
cache: false,
processData: false,
dataType: "json",
success: function(response) {
if (response.status == true) {
$("#category").empty();
$.each(response.data.product, function(key, value) {
$.each(value.price,function(key, amount) {
// var href = window.location.pathname;
var href = "{{ route('home') }}/";
$("#category").append(
"<div class='col-md-11 col-lg-10 col-xl-6 menu-holder left fixed'><a href='' class='menu-thumb'><img src='" +
href + "storage/items/food/" + value.image + "' height='80' width='80'></a>" +
"<div class='menu-item'><h5 class='color-fff'><a href=''></a> <span class='dots'>" +
value.name +"</span><span class='price'><span> ৳ </span>" + amount.discounted_price + "</span></h5><ul><li>" +
"<a href=''>" + value.name +"</a></li></ul></div></div>");
});
问题出在哪里?有人可以帮我吗?