首先,我想告诉你,我搜索并没有从stackoverflow的上一篇文章中找到解决我问题的任何解决方案。所以我在这里发布我的问题。
以下是echo json_encode($flterarr);
后返回的数据
{"2":{"surname":"Winchester","mobile":"07898989898","license":"1234567890b"},"3":{"surname":"winchester","mobile":"07898989891","license":"1234567890bytfty"},"4":{"surname":"Test","mobile":"07678543210","license":"23frd"}}
以下是我的ajax代码
$.ajax(
{
type:"POST",
url: '../icabz/filterRefresh.php',
data: "filter_reset_surname="+filter_reset_surname+"&filter_reset_mobile="+filter_reset_mobile+"&filter_reset_reg_num="+filter_reset_reg_num+"&filter_reset_approval_status="+filter_reset_approval_status+"&filter_reset_logged_status="+filter_reset_logged_status,
success: function(data)
{
alert(data);
$.each( data, function(key,val) {
alert(val);
/*$.each( val, function( key1, val1 ) {
alert(val1.surname);
});*/
});
}
});
当我提醒从php页面返回的原始数据(不使用dataType:"json" or $.parseJSON(data)
)时,它显示数据。但是当我在$.each()
函数中提醒返回的数据时,它显示了单词并显示在控制台中关注。
TypeError: invalid 'in' operand obj
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
现在,如果我尝试使用dataType:"json" or $.parseJSON(data)
并提醒数据,那么它会显示[object Object]。
我使用的是jQuery 1.11.1版本。
如何获取数据以获取姓氏?
答案 0 :(得分:0)
你应该使用dataType:"json"
现在,尝试警告data["2"].surname
,你应该得到“温彻斯特”。
如果你想迭代你的对象,你可以这样做:
for (var key in data) { console.log(key, data[key]); }
for (var key in data) {
for (var skey in data[key]) {
console.log(skey);
}
}
答案 1 :(得分:0)
使用dataType : "json"
然后,在下面的成功部分中尝试:
data= JSON.parse(data);
jQuery.each(data, function(key,val){
alert(val.surname);
});