Javascript 正在接收JSON,但无法写入页面
我能够使用ajax从php文件中获取JSON数据。我把它记录下来,数据是JSON格式的。但是,当我尝试引用一个特定的参数时,它不会出现,而是说Javascript 正在接收JSON,但无法写入页面,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我能够使用ajax从php文件中获取JSON数据。我把它记录下来,数据是JSON格式的。但是,当我尝试引用一个特定的参数时,它不会出现,而是说 "VM160:1 Uncaught SyntaxError: Unexpected token { in JSON at position 79 at JSON.parse (<anonymous>) at Object.success (debate.php:202) at c (jquery.min.js:
"VM160:1 Uncaught SyntaxError: Unexpected token { in JSON at position 79
at JSON.parse (<anonymous>)
at Object.success (debate.php:202)
at c (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at l (jquery.min.js:2)
at XMLHttpRequest.<anonymous> (jquery.min.js:2) ".
在引用包含JSON数据的变量之前,我已经尝试过使用JSON.parse。当您有一个循环时,您需要一个外部数组,添加到每个迭代中,然后在循环完成时发送该外部数组
while($row = mysqli_fetch_array($r)){
$data['title'] = $row['title'];
$data['first'] = $row['first_option'];
$data['second'] = $row['second_option'];
$data['id'] = $row['idUsers'];
$data['uid'] = $row['uidUsers'];
$results[] = $data;
}
// only one echo allowed for json request
echo json_encode($results);
您可以发布控制台.log的输出吗?您是手动创建该json…还是使用
json\u encode()
创建它?向我们展示它是如何从php发送的。@charlietfl我使用了json\u编码。我查询了数据库并创建了一个数组:$data['title']=$row['title'];$data['first']=$row['first_option'];$data['second']=$row['second_option'];$data['id']=$row['idUsers'];$data['uid']=$row['uidUsers'];echo json_编码($data);好的,echo json\u encode($data)
在任何循环之外吗?只能一次回显jsononly@charlietfl不,它在while循环($row=mysqli_fetch_array($r))中。我这样做了,浏览器会接收到它,但当我指定一个参数时,它显示为“未定义”(当I console.log“data”时,所有JSON都可见,但当I console.log“data.title”时,它显示为未定义).对,因为您需要循环遍历javascript数组并访问每个对象data.forEach(函数(item){console.log(item.title)})
或console.log(数据[0].title)
要只获取第一个,我应该在success函数中使用console.log(数据[0].title)吗?因为它仍然返回未定义的,不确定我是否缺少一个更基本的组件或其他东西。我缺少“dataType:json”参数。谢谢你,伙计
while($row = mysqli_fetch_array($r)){
$data['title'] = $row['title'];
$data['first'] = $row['first_option'];
$data['second'] = $row['second_option'];
$data['id'] = $row['idUsers'];
$data['uid'] = $row['uidUsers'];
$results[] = $data;
}
// only one echo allowed for json request
echo json_encode($results);