2013-05-05 68 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