【发布时间】:2013-03-08 09:40:34
【问题描述】:
我有一个简单的搜索框,它将从我的数据库中的可用条目中设置用户的位置。我正在尝试让 jQuery UI 的自动完成功能正常工作,但遇到了问题。在 Chrome 中打开 JavaScript 控制台后,当我开始键入时,我看不到脚本的任何响应。
所需的结果是一个下拉式自动完成列表,其中列出了“城市、州”格式的城市。我在 SO 上查看了几篇文章,并多次尝试修改我的代码来解决这个问题,但没有运气。提前感谢任何指导/修复。非常感谢。
这是我的 jQuery UI 代码(我使用的是 code.jquery.com 托管的最新库)
<script type="text/javascript">
$(document).ready(function()
{
$('#locale').autocomplete(
{
source: "./state_autocomplete.php",
minLength: 2
});
});
</script>
这是我的表单代码:
<form name="frm_set_locale" method="post" action="/index2.php">
<input type="text" name="locale" id="locale" class="textbox">
<input type="submit" class="button" name="frm_submit_locale" value="Search">
</form>
这里是提取信息的 mysqli 脚本
<?php
include "/includes/dbconn.php";
// Query to get the usable locations
$locale = trim($_GET['term']);
$return = array();
$q = "SELECT `city`, `state` FROM `locales` WHERE `city` LIKE '%".$locale."%'";
$r = mysqli_query($q, $connect);
$json = "[";
$first = true;
while ($row = mysqli_fetch_assoc($r, $connect)){
if(!$first){
$json .= ",";
}else{
$first = false;
}
$json .= "{'value':'".$row['city'].", ".$row['state']."}";
}
$json .= "]";
echo $json;
?>
【问题讨论】:
-
你没有发布请求
-
明白。帖子是他们从 jqueryui 自动完成中选择结果后的方法。当用户点击提交时,从 state_autocomplete.php 脚本中选择的值将被发布。
-
确实如此,但您必须先到
request让Json data以Object的身份返回以设置UI AutoComplete的来源。
见下面的代码.. -
我很确定你正在生成无效的 JSON——你需要一个“状态”值的“键”。
-
@Andrew Whitaker,这是我的想法,但我看到的所有远程数据源自动完成示例仅用于 SQL 查询中返回的字段,所以我不确定如何添加辅助键。
标签: php json jquery-ui autocomplete mysqli