2015-02-10 87 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>