我试图自动完成在我的搜索。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" />