在这里,我想在json输出中编码php返回。我很困惑在那里实现。那么,我必须采取的正确方法。
index.html
$(function(){
$.ajax({
type: 'GET',
url: "profile.php",
success: function(resp){
var username = JSON.parse(resp).username;
var profile = JSON.parse(resp).profile;
$('.test').html(username+profile );
}
});
});
profile.php
<?php
require_once('class.php');
?>
<?php
if ($user->is_logged == 1) {
$txtuser = '';
if (empty($D->me->firstname)) $txtuser = $D->me->username;
else $txtuser = $D->me->firstname;
if (empty($D->me->avatar)) $txtavatar = 'default.jpg';
else $txtavatar = $D->me->avatar;
}
?>
<?php
echo json_encode(array('username' => '{$C->SITE_URL.$D->me->username}', 'profile' => '{$txtuser}' ));
?>
答案 0 :(得分:0)
以这种方式清理它,如果您仍有问题,请告诉我:
<?php
require_once('class.php');
if ($user->is_logged == 1) {
$txtuser = '';
if (empty($D->me->firstname)) $txtuser = $D->me->username;
else $txtuser = $D->me->firstname;
if (empty($D->me->avatar)) $txtavatar = 'default.jpg';
else $txtavatar = $D->me->avatar;
}
$arr = array(
"username" => $C->SITE_URL . $D->me->username,
"profile" => $txtuser
);
echo json_encode($arr);
?>
在您的Ajax响应中使用console.log(resp)
来查看控制台中的任何错误。
答案 1 :(得分:0)
将dataType
选项设置为json
,这样您就会告诉jQuery服务器所需的数据是JSON格式,jQuery会尝试将JSON字符串转换为对象。没有必要使用JSON.parse()
手动执行此操作。
$.ajax({
type: 'GET',
url: "profile.php",
dataType: 'json',
success: function( resp ){
console.log( resp );
}
});
使用console.log()
检查结果(Mozilla,Chrome)。
另一件事是你应该删除引号,只是用点连接字符串(PHP String Operators)。此外,json_encode()
之前和之后不应该有任何输出,因为它会破坏json字符串,只需使用die()。
die( json_encode( array( 'username' => $C->SITE_URL . $D->me->username, 'profile' => $txtuser ) ) );