jQuery自动完成(远程) - 示例

dwa*_*rbi 8 php mysql jquery autocomplete

我真的希望避免发布一个新问题,但我找不到一个包含调用页面和"搜索"页面的jQuery自动完成远程功能的功能示例.jQueryUI"演示和文档"部分不包含"search.php"的来源

我尝试了几十种组合,但这是我开始的:

<style>
    .ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
    </style>
    <script>
    $(function() {
        function log( message ) {
            $( "<div/>" ).text( message ).prependTo( "#log" );
            $( "#log" ).attr( "scrollTop", 0 );
        }

        $( "#birds" ).autocomplete({
            source: "search.php",
            minLength: 1,
            select: function( event, ui ) {
                log( ui.item ?
                    "Selected: " + ui.item.value + " aka " + ui.item.id :
                    "Nothing selected, input was " + this.value );
            }
        });
    });
    </script>



<div class="demo">

<div class="ui-widget">
    <label for="birds">Birds: </label>
    <input id="birds" />
</div>

<div class="ui-widget" style="margin-top:2em; font-family:Arial">
    Result:
    <div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>

</div>
Run Code Online (Sandbox Code Playgroud)

和search.php:

    $conn = mysql_connect("localhost", "USERNAME", "PASSWORD");
    mysql_select_db("DATABASE", $conn);
    $q = strtolower($_GET["birds"]);

    $query = mysql_query("select FIELD from TABLE where FIELD like '%$q%'");
    while ($row = mysql_fetch_array($query)) {
    echo json_encode($row);
}
Run Code Online (Sandbox Code Playgroud)

有没有人有代码片段显示他们可以分享的这个等式的两边?非常感谢您提供的任何帮助.

dwa*_*rbi 18

这是search.php的正确代码:

    $conn = mysql_connect("localhost", "USERNAME", "PASSWORD");
    mysql_select_db("DATABASE", $conn);
    $q = strtolower($_GET["term"]);

$return = array();
    $query = mysql_query("select FIELD from TABLE where FIELD like '%$q%'");
    while ($row = mysql_fetch_array($query)) {
    array_push($return,array('label'=>$row['FIELD'],'value'=>$row['FIELD']));
}
echo(json_encode($return));
Run Code Online (Sandbox Code Playgroud)

一些关键点

  • 单词term在jqueryui给出的示例调用页面中没有任何地方,但这是使用的Querystring名称
  • 您必须创建值的数组,然后在返回之前进行json编码

我希望将来可以帮助一些人!