Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在接收JSON,但无法写入页面_Javascript_Php_Jquery_Json_Ajax - Fatal编程技术网

Javascript 正在接收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:

我能够使用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: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);