无法在javascript / jquery

时间:2017-04-20 05:00:33

标签: javascript php jquery json

您好我正在尝试将数据库中的数据结果解析为我的html视图。我不太清楚我在做什么有什么问题。

这是我的代码:

function display($dbhandler){

$sql = "SELECT * FROM users";
    foreach($dbhandler->query($sql) as $row){
        $data = array('id'=>$row['id'], 
                         'email'=> $row['email'], 
                         'name'=> $row['name']
                         );

        echo json_encode($data);        

    }

}

这会给我输出:

  

{“id”:“1”,“email”:“电子邮件1”,“名称”:“姓名1”} {“id”:“2”,“电子邮件”:“电子邮件   2“,”name“:”名称2“}'

现在当我返回并尝试使用jQuery中的 $。parseJSON(result)解析它时。

function display_list(){

		action='select';
		
		$.ajax({
			type:"POST",
			url:"options.php",
			data:{ action : action },
			success: function(res){
				console.log(res)
				results = $.parseJSON(res);
				console.log(results);
			}
		});
	}

我收到此错误:

  

未捕获的SyntaxError:意外的令牌{在位置66的JSON中       在Function.parse [as parseJSON]()       at Object.success(actions.js:16)       at i(jquery-3.1.1.min.js:2)       at Object.fireWith [as resolveWith](jquery-3.1.1.min.js:2)       在A(jquery-3.1.1.min.js:4)       在XMLHttpRequest。 (jquery的-3.1.1.min.js:4)

我试图传递的数据有什么问题吗?欢迎任何建议,谢谢。

4 个答案:

答案 0 :(得分:1)

更改以下行:

echo json_encode()($data);

echo json_encode($data);

并从循环中删除此行,并在循环结束后放置。并进行以下更改:

success: function(res){
  var data = JSON.parse(res);
  alert(data[0].name); 
}

答案 1 :(得分:0)

试试这个

function display($dbhandler){

$sql = "SELECT * FROM users";
    foreach($dbhandler->query($sql) as $row){
        $data[] = array('id'=>$row['id'], 
                         'email'=> $row['email'], 
                         'name'=> $row['name']
                         );



    }
    echo json_encode($data);        
}

我刚刚在[]之后添加了$data个大括号 相当于array_pushphp arr_push()

答案 2 :(得分:0)

function display($dbhandler){
$sql = "SELECT * FROM users";
$data = array();
    foreach($dbhandler->query($sql) as $row){
        $data[] = array('id'=>$row['id'], 
                         'email'=> $row['email'], 
                         'name'=> $row['name']
                         );
    }
echo json_encode($data);       
        }

关于jQuery函数:

function display_list(){

        action='select';

        $.ajax({
            type:"POST",
            url:"options.php",
            dataType: 'json',
            data:{ action : action },
            success: function(json){
                console.log(json)

            }
        });
    }

答案 3 :(得分:0)

原来问题是在脚本的服务器端,所以我根据你的建议修改了我的代码,这就是我到达的那个对我有用的。

function display($dbhandler){

    $sql = "SELECT * FROM users";
    $result = array();
    foreach($dbhandler->query($sql) as $row){
        $data = array('id'=>$row['id'], 
                         'email'=> $row['email'], 
                         'name'=> $row['name']
                         );

        array_push($result,$data);      

    }

    echo json_encode($result);

}