2013-03-22 72 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); 

或任何你想要做這些值。