2013-05-05 44 views
0

我有以下代码调用jQuery的自动完成构件:jQuery的自动完成功能恢复所有标签

$(function() { 
     $("#vendor_name").autocomplete({ 
     source: 'vendor_names.php', 
     minLength: 3 
}) 
}); 

vendor_names.php文件看起来像:

<?php 
include("include/db_connect.php"); 

$query = "select VendorName from Vendor where VendorCancelDate is NULL order by 
VendorName"; 
$result = mssql_query($query); 
while ($record = mssql_fetch_array($result)){ 
     $vendors[] = array('label' => $record['VendorName']); 
} 
echo json_encode($vendors); 

?> 

但是,当我输入任何东西,它总是返回的一切在我的查询中。有任何想法吗?

回答

0

输入的值传递给脚本:

$(function() { 
     var val = $("#vendor_name").val(); 
     $("#vendor_name").autocomplete({ 
     source: 'vendor_names.php?token=' + val, 
     minLength: 3 
    }); 
}); 

筛选脚本返回的结果。你会想这样做,在不串联的SQL,避免SQL注入的方式,但只是一个例子:

<?php 
include("include/db_connect.php"); 
$val = $_GET["token"]; 
$query = "select VendorName from Vendor where VendorCancelDate is NULL and VendorName like '%". $val . "%' order by VendorName"; 
$result = mssql_query($query); 
while ($record = mssql_fetch_array($result)){ 
     $vendors[] = array('label' => $record['VendorName']); 
} 
echo json_encode($vendors); 

?> 
0

据我所知,你需要用户通过输入vendor_names.php?input=whatever ..
和您的查询必须是
select VendorName from Vendor where VendorCancelDate is NULL and VendorName=%whatever%' order by VendorName