【发布时间】:2012-08-10 15:46:33
【问题描述】:
我正在建立一个网站来学习编码,并且我有一个基于 Jquery ui 的自动完成功能,我用三个 mysql 表填充。
这是我在 index.php 上的代码(我的搜索框所在的页面和自动完成功能应该打开的页面)
<script src="./public/js/jquery.js"></script>
<script src="public/js/jquery-ui-1.8.22.custom.min.js" type="text/javascript" charset="utf-8"></script>
<script>
$(function() {
$("#search").autocomplete({
source: "suggest.php",
minLength = 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});
});
</script>
下面是 index.php 上的代码,格式如下:
<form class="form-search span8 offset6">
<input type="text" id='search' name='q' autocomplete="off" class="input-medium search-query">
<button type="submit" class="btn btn-warning">GO!</button>
</form>
这是suggest.php上的代码:
<?php
require("./config.php");
$q = $_GET['q'];
$names = '';
$result = mysql_query("SELECT name FROM company WHERE name LIKE '$q%' UNION SELECT cat FROM cat WHERE cat LIKE '$q%' UNION SELECT subcat FROM subcat WHERE subcat LIKE '$q%' LIMIT 10");
$names = array();
while ($row = mysql_fetch_array($result)) {
$names[] = $row['name'];
}
echo json_encode($names);
?>
如果我直接去suggest.php?q=SOMETHING 并回显$names,结果是这样的:
["City Market","Cafes","Cheesesteaks","Chicken Wings","Chinese","CSA","Coffee & Tea","Convenience Stores","Comedy Clubs"]Array
当我在 Chrome 中打开开发者面板时,jQUery 旁边出现一个错误,自动提示“Uncaught SyntaxError: Unexpected Token ="
我的自动建议没有显示。怎么了?
感谢大家的帮助!
我将 = 更改为 : 现在新错误是“Unexpected Token Illegal”并且自动完成仍然没有出现...有什么建议吗?
【问题讨论】:
-
出于好奇,您为什么在 PHP 中同时回显数组的 JSON 表示和数组本身?
-
@anthony,哎呀抱歉,我有最后一个 echo $names 只是为了测试......不应该在那里
-
好的,我把 = 改成了 : 现在新的错误是“Unexpected Token Illegal”...自动完成仍然没有出现
标签: php javascript jquery mysql