2014-03-05 166 views
0

我有一個按鈕發佈到服務器。這可以很好地執行兩個參數來執行返回JSON對象的查詢。我想要異步更新網頁,並返回JSON數據立即點擊按鈕。我有這個代碼返回未定義或只是所有JSON對象中的最後一個值。我不知道我做錯了什麼,有人可以指點我的方向嗎?jQuery返回undefined JSON

$('#mybutton').click(function() { 
    $.post('search.php', { 
      regNo: $("#regNo").val(), 
      datepicker: $(".datepicker").text() 
     }, 
     function(data) { 
      var obj = data.valueOf(); 

      $.each(obj, function(i) { 
       $('#responsetxt').html("<b>"+obj[i].time+ "</b>"); 
      }); 
     }, 
     'json'); 
    }); 
}); 
+0

您確定您正在從search.php獲取想要的數據嗎?如果可以,請包含search.php的內容。 – Ehsan

+0

你爲什麼要做'var obj = data.valueOf()'?只需使用'data'。 –

+0

'{「id」:「10」,「regNo」:「357139052579492」,「timezone」:「0」,「time」:「1393344365」,「reason」:「3」} - 返回的JSON樣本 –

回答

0

我改變醜陋指數data[i].time簡單data.time

` $('#mybutton').click(function() { 
$.post('search.php', { 
     regNo: $("#regNo").val(), 
     datepicker: $(".datepicker").text() 
    }, 
    function(data) { 
     $.each(data, function(i) { 
      $('#responsetxt').html("<b>"+data.time+ "</b>"); 
     }); 
    }, 
    'json'); 
});});` 
0

如果您收到undefined,則是最有可能與數據的問題已發送,或有沒有匹配。

至於「只得到最後一個」,那麼......在你的.each中,你反覆覆蓋#responsetxt的內容,所以......只剩下最後一個應該不會讓人意外。相反,請考慮構建一個字符串,然後在之後調用構造字符串的循環後調用.html()

0

試試這個:

$('#mybutton').click(function() { 
$.post('search.php', { 
     regNo: $("#regNo").val(), 
     datepicker: $(".datepicker").text() 
    }, 
    function(data) { 
     $.each(data, function(i) { 
      $('#responsetxt').html("<b>"+data[i].time+ "</b>"); 
     }); 
    }, 
    'json'); 
});}); 
+0

感謝Eshan,嘗試過它仍然返回undefined,沒有'.time'它返回最後一個值。 –

+0

然後看看尼采的答案。由於沒有數據,你會得到「未定義」。你會得到最後一個,因爲你在每個循環中都覆蓋了$('#responsetxt')的值。請嘗試在你的循環中使用'alert(obj [i] .time)',看看你是否可以提醒所有對象的時間還是最後一個。 – Ehsan