我有一个 .aspx 页面,它使用 jquery 自动完成功能通过 php 搜索 SQL 数据库。问题是数据库列“联系人”有数百条记录,用户的名字是“彼得”,所以当我输入“彼得”时,我没有得到任何结果,直到开始输入他们的姓氏字母。如何让所有结果出现?当有较小的结果时它工作正常,例如“约翰”,我还想将自动完成 minLength 保留为 3。
我尝试将 PHP.ini max_input_vars 从默认的 1000 更改并重置 IIS,但这没有用。
jQuery代码
$(function () {
$("#queryString").autocomplete({
source: function(request, response) {
$.ajax({
url: "Search.php",
data: { term: $("#queryString").val(), searchby: $("#ddlSearch").val()},
dataType: "json",
type: "GET",
success: function(data){
response(data);
}
});
},
minLength: 3,
multiple: true,
multipleSeparator: " "
})
});
PHP 文件
$tsql = "SELECT [Contact] FROM [Goldmine].[dbo].[CONTACT1] WHERE [Contact] LIKE '$queryString%'";
}
If ($ddlSearch == 'Name') {
$stmt = sqlsrv_query( $conn, $tsql);
$data = array();
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
$data = array_merge( $data, array_values($row) );
sort($data, SORT_NATURAL | SORT_FLAG_CASE);
}
echo json_encode($data);