我有这个 jquery 代码,它弹出一个输入选择器,它应该像这样显示:
$("#demo-input-pre-populated").tokenInput("http://shell.loopj.com/", {
prePopulate: [
{id: 123, name: "Slurms MacKenzie"},
{id: 555, name: "Bob Hoskins"},
{id: 9000, name: "Kriss Akabusi"}
]
});
当我尝试像这样使用 php 从数据库中获取值时:
prePopulate: [
<?
$responses = array();
$topicJSON=getQtopics($getQ);
while($row = mysql_fetch_array($topicJSON)){
$response = array(
'id' => $row['id'],
'name' => $row['name']
);
$responses[] = $response;
}
echo json_encode($responses);
?>
],
像这样显示 json 数据:
prePopulate: [
[{"id":"1","name":"Dormitree"},
{"id":"1482","name":"carriage of goods"}]
],
但是在 #demo-input-pre-populated"
输入上我得到了未定义,我认为它是因为 php 没有自动回显 json,我该如何解决这个问题,谢谢 :))
最佳答案
如果您查看两个 JS 输出,唯一的区别是在从 PHP 输出的情况下您有两个额外的封闭方括号 []
- 所以您正在制作一个数组在这种情况下,JSON 对象数组,而您只需要一个 JSON 对象数组。
为 prePopulate
去掉封闭的 []
因为 json_encode
已经为你做了:
prePopulate: <?
$responses = array();
$topicJSON=getQtopics($getQ);
while($row = mysql_fetch_array($topicJSON)){
$response = array(
'id' => $row['id'],
'name' => $row['name']
);
$responses[] = $response;
}
echo json_encode($responses);
?>,
关于php - 显示来自 php json_encode 的 json 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5502966/