2013-03-22 95 views
1

我发送一个值通过ajax MySQL查询。我从数组中获取查询的输出。我用echo json_encode($var);jquery Ajax和json

如果我的数组大小超过1,我的成功函数没有被调用。我可以看到响应和状态代码200在火虫中。

我该如何检索我的成功函数中的值?

success: function(data){ 
     ob = jQuery.parseJSON(data); 
    }    

更新 我从萤火虫

{"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){  
     } 
}) 
+0

你能解释一下'如果我的数组大小超过1,我的成功函数没有被调用。使用适当的数据 – 2013-03-22 11:12:33

+0

在两种情况下向我们显示回波的输出。 – Sanchit 2013-03-22 11:14:31

+0

@Yougesh Suthar:我可以看到数组形式的萤火虫响应,所以我的意思是这个数组。 – ram 2013-03-22 11:14:51

回答

0

JSON响应尝试以下,看看你得到任何警告。

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')} 
+0

:尝试不工作。 – ram 2013-03-22 11:24:30

+0

@ram甚至警报?我假设你已经将if语句放在函数(data){}部分中。 – MaxI 2013-03-22 11:29:39

+0

@alert(数据)正在工作。我没有承认这一点。“我假设你已经将if语句放在函数(data){}部分中。” – ram 2013-03-22 11:32:20

0

你可以试试:

的这个位置
$.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:http://jsfiddle.net/Y73xe/

+0

:如果我的json是这个{“uid”:“4”, “name”:“ram \ u00fcrmeg \ u00f6zl \ u00fcer”, “pic_big”:“http:\/\/profile.ak.fbcdn.net \“hprofile-ak-prn1 \ /4149__3333_n.jpg”} {“uid”:“5”, “name”:“ram \ u00fcrmeg \ u00f6zl \ u00fcer”, “pic_big”:“http:\//profile.ak.fbcdn.net\/hprofile-ak-prn1\/4149__3333_n.jpg"}{"uid":"6“, ”name“:”ram \ u00fcrmeg \ u00f6zl \ u00fcer“, ”pic_big“ :“HTTP:\/\/profile.ak.fbcdn.net \/hprofile-AK-PRN1 \/4149__3333_n。jpg“} 没有任何提醒。如果它是{”uid“:”4“, ”name“:”ram \ u00fcrmeg \ u00f6zl \ u00fcer“, ”pic_big“:”http:\/\/profile.ak .fbcdn.net \/hprofile-ak-prn1 \ /4149__3333_n.jpg“},我得到提醒。 – ram 2013-03-22 11:49:05

+0

这是因为它不是一个有效的JSON数组,你需要[]围绕该JSON字符串使它成为一个合适的数组,然后$ .each将工作 – 2013-03-22 11:59:50

+0

如何添加[]这个。我从facebook api得到一个数组并将它传递给json_encode(); – ram 2013-03-22 12:02:00

0

你的反应已经是一个对象,没有必要parseJSON它。只要做到这一点得到的价值:

console.log(data.uid); 
console.log(data.name); 
console.log(data.pic_big); 

或任何你想要做这些值。