ajax - 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 错误。
解决方案
您需要dataType: json
在您的 ajax 请求中设置选项,然后在您的控制器中,您可以返回json
响应。
此外,您的控制器代码中缺少起始大括号。正确的代码是
return response()->json(["productQuanties" => $productQuanties, "productPaperStock" => $productPaperStock])
(请注意 ...storage/logs/laravel.log 是一个很棒的地方,可以深入了解您的应用程序的问题:))
推荐阅读
- java - 如何从 Flux 中获取数据
身体 - python - 是否可以向本机类添加方法?
- android - 无法加载内核二进制文件:内核二进制格式版本无效。没有活动包 webdev
- express - 每个视图都需要此设置吗?
- postgresql - Jasper 报告:通过集合参数执行 SQL 语句时出错
- next.js - 在两个 Next.js 项目之间共享代码需要专家的意见
- java - 按下按钮时JavaFX在textField中绘制具有尺寸的矩形并查找它们是否相交
- python - 用于 dlib 的 OpenCV Python 构建轮 (setup.py)
- javascript - 如何在AngularJS中将数据从一个异步函数传递到另一个异步函数
- excel - 是否有非 VBA 方法来计算两组列之和的平均值?