0

我正在尝试使用 autocomplete.php 在我的 search.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 文件的末尾发现了我的错误。这只是我的一个错误,我上面使用的方法效果很好。

4

1 回答 1

1

不确定您的问题是什么,但是由于您的 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" />

于 2013-06-06T18:54:52.830 回答