使用jQuery-ui自动完成php和javascript的文本框


Using jQuery-ui to autocomplete a text box with php and javascript

我试图自动完成在我的搜索。php代码中的文本框使用autocomplete.php

我知道我的php代码工作得很完美,并且返回了jQuery中自动完成功能所需的内容。

这是文本框的html。

<input type="text" name='search' id="search" class="input-block-level" autocomplete="off" placeholder="search...">
这是我的脚本自动完成功能
<script>
  jQuery(document).ready(function($){
    $('#search').autocomplete({source:'autocomplete.php', minLength:2});
  });
</script>

php文件

<?php

 if ( !isset($_GET['term']) )
exit;

$conn = odbc_connect('Abilis', 'infosysreader', 'Wilsons12'); 
$query = "SELECT TOP 10 [Del_ad1] FROM [Abilis].[dbo].[Customers] WHERE Del_ad1 LIKE    '%".$_GET['term']."%'";
$rs = odbc_exec($conn, $query);

$data = array();
for($i = 0; $i<odbc_num_rows($rs);$i++){
$row = odbc_fetch_array($rs, $i);
$data[] = array(
            'label' => $row['Del_ad1'],
            'value' => $row['Del_ad1']
);
}
// jQuery wants JSON data
echo json_encode($data);
flush();
编辑:

我发现我的错误在我的html文件的末尾。这只是我的一个错误,我上面使用的方法工作得很好

不确定您的问题是什么,但由于您的PHP正确返回json编码字符串,那么问题是自动完成调用。试试这个,让我知道是否有什么不同:

$('#search').autocomplete({
   minLength:2,
   source: function(request, response) {
       $.ajax({
         url: 'autocomplete.php', 
         dataType: 'json',
         data: { term : request.term },
         success: function(result) {
              response(result);
         }
       });
   }
});

还可以尝试将autocomplete="off"更改为autocomplete="on"

从输入元素中删除以下内容:

class="input-block-level" autocomplete="off" placeholder="search..."

和尝试<input type="text" name='search' id="search" />