【发布时间】:2014-04-25 01:34:01
【问题描述】:
我在获取引导输入以从我的 MySQL 数据库中以 json 数组形式返回数据时遇到问题。
这是我目前所拥有的:
$('.typeahead').typeahead({
items: 5,
source: function (query, process) {
$.ajax({
url: 'typeahead.php',
type: 'POST',
dataType: 'JSON',
data: 'query=' + query,
success: function(data) {
process(data);
}
});
},
highlighter: function(data) {
// decode JSON data and return it here
},
updater: function(data) {
console.log("CLICKED!");
},
});
这是 PHP 文件:
$search_for = $_POST['query'];
$return = array();
$stmt = $cxn->prepare('SELECT username, display_name FROM users WHERE username LIKE concat("%", ?, "%") OR display_name LIKE concat("%", ?, "%")');
$stmt->bind_param('ss', $search_for, $search_for);
$stmt->execute();
$result = $stmt->get_result();
while (($row = $result->fetch_assoc())) {
array_push($return, array($row['username'], $row['display_name']));
}
$json = json_encode($return);
echo $json;
这是它返回的 JSON:
[["username","Display Name"],["username2","Display Name 2"]]
但是,当我测试预输入时,此代码不起作用。它在控制台中给出以下错误:
那么,我的问题是,如何正确地从数据库中获取多条数据并将其放入 json 数组中?
【问题讨论】:
-
您正在使用您的数据创建一个数组。尝试在变量中获取原始结果,然后对其调用 json_encode() 而不经过循环
标签: javascript php jquery twitter-bootstrap bootstrap-typeahead