使用MongoDB从AJAX调用接收JSON

时间:2014-02-27 14:21:10

标签: javascript php jquery json mongodb

我从MongoDB数据库中获取用户详细信息,如下所示:

$user=$collection->findOne(array('_id' => new MongoId($_SESSION['user']['userid'])));
if (!empty($user)){
    json_encode($user);
    print_r($user);
}

我可以从AJAX中获取整个JSON数组,但不是单个元素 - 我得到了未定义:

$.ajax({
    type: 'json',
    url: '../scripts/getUser.php',
    method: 'GET',
    success: function(msg){
        alert(msg);
    }
});

实际的JSON结构如下:

username: john
password: hello
email: me@mailserver.com

我被困住了。

3 个答案:

答案 0 :(得分:1)

从getUser.php返回数组对象,但是将其显示为普通变量

$.ajax({
    type: 'json',
    url: '../scripts/getUser.php',
    method: 'GET',
    success: function(msg){
    $.each(msg,function(key,value){
        alert(value.id);
});    
}
});

我想这会起作用..

答案 1 :(得分:0)

您需要获得返回值

$encoded = json_encode($user);
print_r($encoded);

您使用的方法不是编码。它返回左侧值。

答案 2 :(得分:0)

               success: function (response) 
                {
                if(response != 'error')
                {
                    //parse into JSON
                var jsonObj = JSON.parse(response);

                var HTML = '';
                          //extract single value using each 
                $.each(jsonObj, function(key, val) {

                    HTML += '<tr><td>' + val.id + '</td><td>' + val.first_name + '</td><td>' + val.last_name + '</td><td>' + val.gender + '</td>'
                   +'<td>' + dt + '</td><td>' + val.phone + '</td><td>' + val.mobile + '</td><td>' + val.email + '</td>'
                   +'<td>' + val.address + ',' + val.city + ',' + val.state + '</td><td>' + val.country + '</td>'
                   +'<td>' + val.zip + '</td><td>' + val.hobbies + '</td><td>' + 'INR ' +val.salary + '</td><td>' + val.countryCode + '</td>'
                   +'<td>' + val.username + '</td><td>' + val.pwd + '</td></tr>';

                });