2

我正在编写一个新网站来学习 PHP 和编码,并且正在制作一个由两个 mysql 表填充的自动建议。

这是我的代码(是的,我正在使用 mysql,但是一旦找到解决方案,我将在 mysqli 中重写它!):

建议.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 表中的subcatcompany表中的name表和cat表中的cat

自动提示没有出现?怎么了?

感谢大家的帮助!

4

4 回答 4

5

尝试从 php 发送 JSON 格式的数据,例如:

$names = array();
while ($row = mysql_fetch_array($result)) { 
    $names[] = $row['name']; 
}
echo json_encode($names);//format the array into json data
于 2012-08-10T04:31:04.357 回答
2

http://jqueryui.com/demos/autocomplete/

预期的数据格式 来自本地数据、url 或回调的数据可以有两种变体:

An Array of Strings:
[ "Choice1", "Choice2" ]
An Array of Objects with label and value properties:
[ { label: "Choice1", value: "value1" }, ... ]

您只是返回由换行符分隔的选定名称

于 2012-08-10T04:29:15.747 回答
1

来自 jquery autocomplete 的文档

http://jqueryui.com/demos/autocomplete/

来自本地数据、url 或回调的数据可以有两种变体:

An Array of Strings:
[ "Choice1", "Choice2" ]
An Array of Objects with label and value properties:
[ { label: "Choice1", value: "value1" }, ... ] 

尝试相应地传递您的数据。

于 2012-08-10T04:32:11.853 回答
1

阅读jquery ui 自动完成的文档

预期数据格式

来自本地数据、url 或回调的数据可以有两种变体:

  • 字符串数组:
    [ "Choice1", "Choice2" ]

  • 具有标签和值属性的对象数组:
    [ { label: "Choice1", value: "value1" }, ... ]

标签属性显示在建议菜单中。用户从菜单中选择某些内容后,该值将插入到输入元素中。如果只指定了一个属性,它将同时用于这两个属性,例如。如果您仅提供值属性,则该值也将用作标签。

于 2012-08-10T04:32:56.353 回答