我通过ajax发送一个值到mysql查询。我从查询得到输出作为数组。我用的是echo json_encode($var);
如果我的数组大小大于1,我的成功函数没有被调用。我可以在fire bug中看到响应和状态码200。
我应该如何在我的成功函数检索值?
success: function(data){
ob = jQuery.parseJSON(data);
}
我的Json响应从firebug
{"uid":"4",
"name":"ram'u00fcrmeg'u00f6zl'u00fcer",
"pic_big":"http:'/'/profile.ak.fbcdn.net'/hprofile-ak-prn1'/4149__3333_n.jpg"}
$.ajax({
type: "POST",
url: "x.php",
dataType: 'json',
data: y,
success: function(data){
}
})
试试下面的提示,看看是否有提示。
if(!$.isEmptyObject(data))
{
alert (data);
var len = data.length;
for (var i = 0; i< len; i++) {
var var1 = [data[i].uid];
var var2 = [data[i].name];
var var3 = [data[i].pic_big];
}
else{alert('No data')}
您的响应已经是一个对象,不需要对其进行parseJSON。只需执行以下操作即可获取值:
console.log(data.uid);
console.log(data.name);
console.log(data.pic_big);
或者你想怎么处理这些值
您可以尝试:
$.ajax({
type: "POST",
url: "x.php",
dataType: 'json',
data: y,
success: function(data){
$.each(data, function() {
var uid = this.uid; // etc
}
// this works alone if your response is wrapped in [ ], if not:
if(!data.length) {
var uid = data.uid;
} else { // above $.each code
}
}
jsFiddle this here: http://jsfiddle.net/Y73xe/