我正在编写一个新的网站来学习PHP和编码,并且正在制作一个由两个mysql表填充的自动提示。
继承我的代码(是的,我正在使用mysql,但是一旦找到解决方案,我就会在mysqli中重写它!):
suggest.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"");
while ($row = mysql_fetch_array($result)) { $names .= $row[name]."\n"; }
echo $names;
?>
index.php(搜索框所在的位置)
<form class="form-search span8 offset6">
<input type="text" id='search' name='q' class="input-medium search-query">
<button type="submit" class="btn btn-warning">GO!</button>
</form>
稍后在index.php中(我之前调用jquery.js):
<script src="public/js/jquery-ui-1.8.22.custom.min.js" type="text/javascript"
charset="utf-8"></script>
<script>
$(function () {
$(document).ready(function () {
$("#search").autocomplete("./suggest.php");
});
});
</script>
我正在尝试填充自动提示的行是 subcat 表中的 subcat 行, 名称表公司表,以及 cat 表中的 cat 。
autosuggest没有出现?怎么了?
感谢您的帮助!
答案 0 :(得分:5)
尝试从php发送JSON格式的数据,例如:
$names = array();
while ($row = mysql_fetch_array($result)) {
$names[] = $row['name'];
}
echo json_encode($names);//format the array into json data
答案 1 :(得分:2)
http://jqueryui.com/demos/autocomplete/
预期数据格式来自本地数据,网址或回调的数据可以 有两种变体:
An Array of Strings: [ "Choice1", "Choice2" ] An Array of Objects with label and value properties: [ { label: "Choice1", value: "value1" }, ... ]
您只是返回以换行符分隔的所选名称
答案 2 :(得分:1)
来自jquery autocomplete的文档
http://jqueryui.com/demos/autocomplete/
来自本地数据,网址或回调的数据可以有两种变体:
An Array of Strings:
[ "Choice1", "Choice2" ]
An Array of Objects with label and value properties:
[ { label: "Choice1", value: "value1" }, ... ]
尝试相应地传递您的数据。
答案 3 :(得分:1)
阅读jquery ui autocomplete的documentation
来自本地数据,网址或回调的数据可以有两种变体:
一串字符串:
[ "Choice1", "Choice2" ]
具有标签和值属性的对象数组:
[ { label: "Choice1", value: "value1" }, ... ]
标签属性显示在建议菜单中。该 选择用户后,将将值插入到input元素中 菜单上的东西。如果只指定了一个属性,它将是 用于两者,例如。如果只提供value-properties,则为值 也将用作标签。