Laravel和Ajax返回数组响应没有解析

时间:2018-08-16 22:05:36

标签: ajax laravel-5

当前,我正在尝试通过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错误。

1 个答案:

答案 0 :(得分:1)

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

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

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

(请注意,... storage / logs / laravel.log是一个很棒的地方,可深入了解导致应用程序崩溃的原因))