2012-08-01 75 views
1

我有2個PHP文件:索引和頁面。在我的index.php寫AJAX/jQuery代碼:AJAX,作爲答案獲得對象

$(document).ready(function() { 
     var mas; 
     $.ajax({ 
      url: "page.php", 
      type: "POST", 
      data: "a=aaa&b=bbb", 
      success: function (htm) { 
       mas = htm; 
       alert(htm);   
      } 
     }); 


     $(document).on("click", function() { 
      alert(mas['a']); 
     }); 


    }); 

在page.php文件我只有這樣的代碼:

echo json_encode($_POST); 

數據成功地發送,因爲我在警報消息獲得:{ 「一個」 : 「AAA」, 「b」: 「BBB」}。 當我點擊文檔時,警告:「未定義」,請告訴我,我錯在哪裏? 我想告訴「aaa」

+0

我認爲它可能超出了變量的範圍,但我不是100%確定的。 – Matt 2012-08-01 15:32:42

回答

1

json_encode()函數,就是這樣......將數據編碼爲JSON。 JSON不是JavaScript對象,它是對於JavaScript對象的表示法。爲了使用它作爲一個對象,你需要首先分析它:

mas = JSON.parse(htm); 

然後你就可以訪問諸如值:

alert(mas.a); 
+0

O,非常感謝,理解 – 2012-08-01 15:33:53

1

地址:

header('Content-type: application/json'); 

到頂部PHP腳本。

您的JSON數據被當作一個HTML字符串處理,而不是被充入JavaScript對象。

1

您需要告訴jQuery從AJAX調用中解析JSON。爲此,請將dataType: 'json'添加到$.ajax

$.ajax({ 
    url: "page.php", 
    type: "POST", 
    data: "a=aaa&b=bbb", 
    dataType: 'json', 
    success: function (htm) { 
     mas = htm; 
     console.log(htm);   
    } 
});