如何使用json_encode作为基于我的代码的json返回

时间:2015-04-02 18:12:56

标签: php jquery ajax json

在这里,我想在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}' ));
?>

2 个答案:

答案 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()检查结果(MozillaChrome)。

另一件事是你应该删除引号,只是用点连接字符串(PHP String Operators)。此外,json_encode()之前和之后不应该有任何输出,因为它会破坏json字符串,只需使用die()

die( json_encode( array( 'username' => $C->SITE_URL . $D->me->username, 'profile' => $txtuser ) ) );