【发布时间】:2014-01-15 17:38:04
【问题描述】:
我已经绞尽脑汁好几个小时想弄清楚为什么这不起作用。提前感谢任何可以提供帮助的人。
基本上,我正在尝试使用来自 php/mysql 数据库查询的 json 编码数据来填充 select2 插件的下拉列表。
HTML:
<input type="hidden" name="search-area" id="location-search" data-placeholder="Select an area" style="width:100%"/>
Javascript:
$(document).ready(function() {
$(".select2").select2();
$("#location-search").select2({
ajax: {
url: "location-data.php",
dataType: 'json',
data: function (term) {
return {
q: term
};
},
results: function (data) {
return { results: data.text };
}
}
});
})
PHP 脚本“location-data.php”:
<?php
include 'db/db-connect.php';
$query = "SELECT townID, town FROM towns WHERE town LIKE '%a%' ORDER BY town";
$result = $db->query($query);
$numtowns = $result->num_rows;
if($numtowns != 0) {
while($row = $result->fetch_assoc()) {
$answer[] = array("id"=>$row['townID'], "text"=>$row['town']);
}
}
else {
$answer[] = array("id"=>"0", "text"=>"No Results Found...");
}
echo json_encode($answer);
?>
现在我在浏览器中查看了 location-data.php 页面,它以正确的格式显示,见下文。
[{"id":"1","text":"basildon"},{"id":"2","text":"billericay"},{"id":"7","text":"eastwood"},{"id":"12","text":"hanningfield"},{"id":"5","text":"maldon"},{"id":"11","text":"ongar"},{"id":"6","text":"rayleigh"}]
每当我尝试使用 select2 框时,它只显示“正在搜索...”,并且从不显示结果。
再次感谢您提供的任何帮助。
【问题讨论】:
-
另外,我使用硬编码搜索“a”只是为了让它显示结果,一旦完成,我将继续使结果动态化。
标签: php ajax jquery jquery-select2