php - jQuery 自动完成 Mysql PHP

标签 php jquery mysql autocomplete

嗨,有人可以看一下这个,让我知道我哪里出错了。我正在尝试让 jQuery UI 自动完成工作。这是我的代码: 这是search.php

include "db_connect.php";
$search = $_GET['term'];    
    $result = mysql_query("SELECT Title FROM `movie` WHERE `Title` LIKE '%$search%' ORDER BY Title ASC") or die('Something went wrong');
    $rows = array();
    while ($row = mysql_fetch_assoc($result)){
        $rows[] = $row;

    }
print json_encode($rows);
?>

这是我的 javascript 内联脚本

<script type="text/javascript">
    $(document).ready(function()
    {
        $('#auto').autocomplete(
        {
            source: "./search.php",
            minLength: 3
        });
    });
</script>

这是“自动”div

<div id="searchTxtFieldDiv">
<p><input type="text" id="auto" /></p>
</div>

当我使用 firebug 查看调用时,我看到 search.php 正在返回

[{"Title":"Sin City"}]

jQuery 只是显示 UNDEFINED 有什么想法吗??

最佳答案

看看jquery ui autocomplete documentation 。您返回的 JSON 与自动完成功能查找的内容不匹配。您返回的对象必须具有名为 label 或 value (或两者)的属性。

您可以尝试以下选项:

选项 1:更改返回的 JSON

更改返回的 JSON 以包含标签/值属性,例如:

[{"label":"Sin City"}]

从示例来看,它似乎也使用了 id 属性。我相信以上是自动完成显示值列表的最低要求。我认为您还可以返回一个字符串数组,它将以与上面完全相同的方式呈现它。

[ "Sin City", "Etc" ]
    

选项 2:更改私有(private) _render 函数

更改自动完成功能的私有(private) _renderItem 函数以使用您的自定义属性,如 autocomplete example 所示(未经测试):

$( "#project" ).autocomplete({
    source: "./search.php",
    minLength: 3    
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
    return $( "<li></li>" )
   .data( "item.autocomplete", item )
   .append( item.Title )
   .appendTo( ul );
};

这更灵活一点,但恕我直言,它更难看。

关于php - jQuery 自动完成 Mysql PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45192245/

相关文章:

php - 使用 LinkedIn V2 API 上传视频

php - 我无法将数据插入数据库

javascript - 在 Node.js 中保存 XML 文件

javascript - 在 knockoutjs 中结合 href、click 和 data-bind

javascript - 如何使用javascript从字符串中删除第一个单词 "the"

php - 解析大型 JSON 文件

php - 使用复合聚合函数的数组子集优化

javascript - 如何从有序列表中选择一个列表元素?

php - 比较两个单独列的日期值

c# - Mysql .NET 3.5 上的 TypeLoad 异常