[英]Ajax using information from 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);
此信息(两个包含大量信息的数组)出现在Ajax done函数中调用的警告框中,这意味着此信息在客户端可用。
我希望能够处理数组并在页面上显示信息。 print_r是发送信息的正确方法吗? 在此之后,如何在页面中处理和显示数组中的信息?
要通过AJAX将PHP文件中的数组发送回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
内容类型标头)
正确的方法是在你的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);
});
在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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.