2015-02-10 54 views
3

我在使用AJAX調用後從我的PHP文件中獲得的信息時遇到問題。 我現在有以下AJAX代碼點擊按鈕後觸發的:使用來自PHP的信息的Ajax

<script> 
    $(document).ready(function(){ 
     $('.button').click(function(){ 
      $.ajax({ 
        type: "POST", 
        url: "nano.php", 
        data: { action: "authenticate" } 
       }).done(function(msg) { 
        alert("Done: " + msg); 
       });  
     }); 
    }); 
</script> 

比,在nano.php文件我做了一些認證信息獲取。在我的PHP代碼,最終我做到以下幾點:

print_r($member_info); 
    print_r($activity_info); 

該信息(兩個數組有很多的信息)出現在警告框,被稱作阿賈克斯完成的功能,這意味着該信息可在客戶端使用。

我想能夠對待數組並顯示頁面上的信息。 print_r是發送信息的正確方法嗎?在此之後,如何處理並顯示頁面中數組中的信息?

回答

5

從你的PHP文件通過AJAX使用發送陣列回的Javascript:

echo json_encode($array);

適用於串了。

並在您的通話jQuery.ajax改變預期的響應類型json

$.ajax({ 
    type: "POST", 
    url: "nano.php", 
    dataType: 'json', 
    data: { action: "authenticate" } 
}).done(function(msg) { 
    alert("Done: "); 
    console.log(msg); // <- javascript array or object 
}); 

(或從PHP發送application/json Content-Type頭)

2

正確的方法做,這是使用一個空的標記在你的HTML像<div id="response"></div>

在你的PHP:

print_r(json_encode($member_info)); 
print_r (json_encode($activity_info)); 

而在你的Ajax調用使用這個div持有AJAX效應初探這樣的:

$.ajax({ 
        type: "POST", 
        url: "nano.php", 
        data: { action: "authenticate" } 
       }).done(function(msg) { 
        $("#response").html(msg); 
       });  
1

返回JSON消息,它更容易在jQuery的後管理。

PHP:

$data = array('some_var' => 'some_value'); 
echo json_encode($data); 
exit; 

然後在jQuery的:

<script> 
$(document).ready(function(){ 
    $('.button').click(function(){ 
     $.ajax({ 
       type: "POST", 
       url: "nano.php", 
       data: { action: "authenticate" } 
      }).done(function(msg) { 
       var data_object = JSON.parse(msg); // Create a Javascript object/array from the JSON 
       // Here you can use the data inside the array/object 
       alert(data_object.some_var); 
      });  
    }); 
}); 
</script>