自动填充问题

时间:2012-08-10 04:25:17

标签: php javascript jquery mysql

我正在编写一个新的网站来学习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没有出现?怎么了?

感谢您的帮助!

4 个答案:

答案 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,则为值   也将用作标签。