一尘不染

jQuery自动完成Mysql PHP

mysql

嗨,有人可以看一看,让我知道我要去哪里了。我正在尝试使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 id="searchTxtFieldDiv">
<p><input type="text" id="auto" /></p>
</div>

当我使用Firebug查看呼叫时,我看到search.php返回了

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

jQuery只是显示未定义的任何想法?


阅读 293

收藏
2020-05-17

共1个答案

一尘不染

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

您可以尝试以下选项:

选项1:更改返回的JSON

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

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

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

[ "Sin City", "Etc" ]

选项2:更改private _render函数

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

$( "#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 );
};

这有点灵活,但恕我直言。

2020-05-17