问答详情
源自:2-1 JSON实战(1)-使用Javascript Ajax 初始化网站会员基本信息

为什么用eval()

在PHP中输出的json数据,为什么这边不能直接用,为什么要用eval()处理

提问者:无魂 2015-11-12 16:10

个回答

  • Superman007
    2016-10-15 13:58:25

    <script type="text/javascript">
        $("document").ready(function () {
            var url = "server.php";
            var data = {'inAjax': 1, 'do': 'checkMember', 'username': 'demo'};
    
            $.ajax({
                url: url,
                type: 'post',
                data: data,
                dataType: 'json',
                success: function (res) {
                    
                    //把json字符串转换为js对象,用来调用数据
    //                var jsonObj = JSON.parse(res);
                    $("#username").val(res.username);
                    $("#groupname").val(res.groupname);
                    $("#uid").val(res.uid);
    
                },
                error: function () {
                    alert('请求异常');
                }
            });
        });
    </script>

    这样写,就可以不用转换了,都约定为json,直接调用就好

    <?php
    error_reporting(0);
    
    $inAjax = $_POST['inAjax'];
    $do = $_POST['do'];
    $do = $do ? $do : "default";
    
    if (!$inAjax)
        return false;
    
    include_once "db.class.php";
    
    switch ($do) {
        case "checkMember":
            $username = $_POST['username'];
            $sql = "SELECT * FROM check_member WHERE username='$username'";
            $result = $dbObj->getOne($sql);
            $resJson = json_encode($result);
    
            echo (!empty($result)) ?  $resJson: "null";
            break;
    
        case "default":
            die("nothing");
            break;
    }


  • 架构人生
    2015-12-20 16:26:39

    返回的是个字符串,eval()的作用是将字符串强制转换成对象