![](/img/trans.png)
[英]Fetching & displaying data from a database (Javascript XML HTTP Request)
[英]Ajax request fetching data from database and return it
我正在尝试发出一个简单的 Ajax 请求,该请求在控制器中可以从数据库中获取数据并返回。 现在我在视图上有这个代码:
$(".btn-submit").click(function(e) {
e.preventDefault();
var name = $("input[name=name]").val();
var password = $("input[name=password]").val();
var email = $("input[name=email]").val();
$.ajax({
type: 'POST',
url: '/ajaxRequest',
data: JSON.stringify({
name: name,
password: password,
email: email
}),
dataType: "json",
success: function(data) {
console.log(data.lots);
alert(data.success);
$("#id").append(data.lots);
}
});
});
控制器上的这段代码:
public function ajaxRequestPost(Request $request)
{
$input = $request->all();
$result = DB::select('select * from users');
$enc = json_encode($result);
$ht = "<h3>TESTE</h3>";
return response()->json(['success' => 'Got Simple Ajax Request.', 'lots' => $enc]);
}
如何在视图上回显变量 $enc 的每一行?
首先,你不需要json_encode()
$result
变量,因为 Laravel 会为你处理这个。 您目前拥有的代码在技术上意味着您需要再次解码数据。
其次,您实际上并不需要使用response()->json()
因为从路由/控制器方法返回一个数组无论如何都会自动转换为 JSON。 这更多是仅供参考,而不是您实际需要做的事情。
将您的控制器方法更改为:
public function ajaxRequestPost(Request $request)
{
return [
'success' => 'Got Simple Ajax Request.',
'lots' => DB::select('select * from users'),
];
}
然后循环遍历结果,您可以使用for
循环:
success: function (data) {
for (var i = 0; i < data.lots.length; i++) {
console.log(data.lots[i]);
}
}
或者因为您使用的是 jQuery $.each(...) :
success: function (data) {
$.each(data.lots, function (index, item) {
console.log(item);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.