首页 > 解决方案 > Laravel & Ajax 返回数组响应不解析

问题描述

目前我正在尝试通过 ajax 提取一些数据,但我没有让数据正确显示。

在我的 ajax 调用中,我有这个:

$.ajax({
      url:"{{ route('pricing.fetch') }}",
      method:"POST",
      data:{select:select, value:value, _token:_token, dependent:dependent, productId:productId},
      success:function(result)
      {

      $("ul[data-dependent='quantity']").html(result);

这按预期工作。问题是我试图从我的数据库中的不同表返回数据。因此,我试图通过将 ajax 中的结果更改为此来做到这一点。

$("ul[data-dependent='quantity']").html(result.productQuantities);

我想要这样做的原因是因为我需要多个下拉菜单。所以我也想做另一个这样的:

$("ul[data-dependent='quantity']").html(result.productPaperStock);

我的控制器代码是这样的:

   $data = Product::with(['productQuantity', 'productPaperstock'])->where('ID', $productId)->first();
   // pull the quantity for this product
   $productQuanties = $data->productQuantity;
   $productPaperStock = 'hello';

   $output = '';

   foreach($productQuanties as $productQuantity)
   {
    $output .= "<li><span>" . $productQuantity->quantity_name . "</span></li>";
   }
    return response()->json["productQuanties" => $productQuanties, "productPaperStock" => $productPaperStock]);

我不确定我做错了什么,但使用上面的这个例子我得到一个 500 错误。

标签: ajaxlaravel-5

解决方案


您需要dataType: json在您的 ajax 请求中设置选项,然后在您的控制器中,您可以返回json响应。

此外,您的控制器代码中缺少起始大括号。正确的代码是

return response()->json(["productQuanties" => $productQuanties, "productPaperStock" => $productPaperStock])

(请注意 ...storage/logs/laravel.log 是一个很棒的地方,可以深入了解您的应用程序的问题:))


推荐阅读