2012-01-25 76 views
0

我一直在閱讀了很多問題,但似乎無法找到我的特定問題 我有一個PHP腳本,返回一個讀取數組,並將其編碼爲JSON。我在我的PHP腳本沒有頭(我看過一些關於這一點,但都沒有得到一個線索)PHP將JSON對象返回給jQuery ajax調用。現在什麼?

的PHP

if (mysql_num_rows($pquery) == 1) { 
    $result = mysql_fetch_assoc($pquery); 
    echo json_encode($result); 

} 

jQuery的

$('#c_search').submit(function(){ 
     data = ($(this).serialize()); 

    $.ajax({ 
     url: 'actions/get_company.php', 
     type: 'POST', 
     data: data, 
     cache: false, 
     success: function(text){ 
      alert (text); 
      alert(text[1]); // not right! 
      alert(text.company[0]);// not right! 
     } 

}).error(function(){ 
    alert('error'); 
}) 
return false; 

}) 

我回來的文字:

{"id":"167","company":"ZEN","street":"1 S Congress Ave","email":"[email protected]","state":"TX","zip":"78704","phone":"512-555-1212"} 

如何正確處理這個問題,以便我可以將每個單獨的部分放入自己的變量中。

+0

明白了!謝謝大家......當堆棧允許時,將在6分鐘內檢查。 –

回答

2
data: data, 
cache: false, 
dataType: 'json', // <!-- indicate that the response type is JSON => not necessary if your PHP script correctly sets the Content-Type: application/json response header 
success: function(text) { 
    alert(text.id); 
    alert(text.company); 
    alert(text.street); 
    alert(text.email); 
    ...  
} 
+0

所有這些答案都指出了我正確的方向,因爲我走下了路線,這是一個簡單的理解並首先工作的人。感謝所有..贊成票。 –

3

您可以使用dataType擁有jQuery的解析響應爲JSON:

$.ajax({ 
    url: 'actions/get_company.php', 
    dataType: 'json', 

    [..] 

data那麼將是一個普通的JavaScript Object,這樣你就可以訪問該領域正常:

alert (data.street); 
2

您可以使用JSON.parse()

$('#c_search').submit(function(){ 
     data = ($(this).serialize()); 

    $.ajax({ 
     url: 'actions/get_company.php', 
     type: 'POST', 
     data: data, 
     cache: false, 
     success: function(text){ 
      var obj = JSON.parse(text); 
      alert (text); 
      alert(text[1]); // not right! 
      alert(text.company[0]);// not right! 
     } 

}).error(function(){ 
    alert('error'); 
}) 
return false; 

}) 
1

設置dataTypejson使得JSON解析您喜歡

$.ajax({ 
dataType:'json', 
}); 

,或者您可以通過

$.ajax({ 
dataType:'json', 
success:function(json){ 
    var parsedJSON = $.parseJSON(json); 
}, 
}); 

DEMO

2

manualy解析JSON與數據類型的嘗試:JSON或使用$ .getJSON而不是$ .ajax。