我正在开发一个应用程序,它对PHP脚本执行Ajax调用,返回json_encode
数据。
正如预期的那样从PHP返回数据。但是当试图在jquery中解析它时,我收到一个控制台错误:
未捕获TypeError:无法使用'in'运算符搜索'1009'
然后是我的数据数组的副本。
json编码数据的一个例子如下:
[
{"u_id":"21747","fname":"Andy","lname":"","email":"foo@bar.com"},
{"u_id":"3748","fname":"John","lname":"","email":"foo@baz.com"},
{"u_id":"451750","fname":"Peter","lname":"","email":"someone@else.com"},
]
我正在使用的jquery如下。所需的输出是显示一个复选框旁边的人员电子邮件地址列表:
$(function() {
$('#myModal').on('shown.bs.modal', function() {
$(".modal-body").html("Loading...");
$.ajax({
url: "<?= $router->pathFor('/admin/ajax/find-user'); ?>",
data: {
searchInput: $('#searchInput').val()
},
method: "POST",
}).done(function(data) {
//$(".modal-body").html(data);
$.parseJSON(data);
$.each(data, function(key, value){
$(".modal-body").html('<input type="checkbox" id="' + value.u_id + '">' + value.email + "<br>");
});
});
});
});
这有什么问题,错误意味着什么(我在数据的任何地方都看不到1009,虽然不确定这是不是真的意味着什么?)
答案 0 :(得分:2)
您需要首先解析您的JSON数据:
var parsedData = $.parseJSON(data);
但是如果您的PHP脚本返回带有正确Content-Type
的JSON,那么您不需要这样做。如果您确保PHP脚本发送Content-Type: application/json
,jQuery会在提供给您之前自动解析它。这是解决问题的另一种方法。
答案 1 :(得分:-2)
不太确定!!
但你可以试试 largeJSONobject.data
喜欢
$ .each(largeJSONobject.data,function(key,value){
$(“。modal-body”)。html(''+ value.email +“
”);
});