【发布时间】:2018-04-09 13:55:13
【问题描述】:
我正在使用这个自动完成插件https://www.devbridge.com/sourcery/components/jquery-autocomplete/
我在 jQuery 中使用下面的代码行
$('#text-user').autocomplete({
serviceUrl: 'index.php?secController=studentProfile&action=employeeSearch',
onSelect: function(suggestion) {
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
});
从php 端,它通过以下代码从数据库中获取建议
public
function employeeSearch() {
$arrayOfEmployee = array();
$arrayToPush = array();
$arrayToJSON = array();
$new_item = $this - > apicaller - > sendRequest(array(
"controller" => "Employee",
"action" => "employeeSearch",
"searchCriteria" => $_REQUEST['searchCriteria']
));
$arrayOfEmployee = json_decode($new_item, true);
foreach($arrayOfEmployee as $key => $employee) {
$arrayToPush = array('value' => $employee['FullName'], 'data' => $employee['_id']['$oid']);
array_push($arrayToJSON, $arrayToPush);
}
echo json_encode(["suggestions" => $arrayToJSON]);
}
自动完成的格式正确。现在的问题是一直在获取所有数据。然后我意识到这可能是因为无法找到没有像调用一样在ajax中传递的文本框的searchCriteria。
请帮助我如何通过类似于调用此插件的 ajax 传递 "searchCriteria" => $_REQUEST['searchCriteria'] 行的 searchCriteria?
我试过了
$('#text-user').autocomplete({
serviceUrl: 'index.php?secController=studentProfile&action=employeeSearch',
type: 'POST',
dataType: 'JSON',
data: {
searchCriteria: this.value
},
....
...
它仍然会获取所有员工,因为在数据库编码中如果 searchCriteria 留空,它会获取所有员工
请帮忙
数据是
{"suggestions":[{"data":"Aasiya Rashid Khan","value":"5aa662b0d2ccda095400022f"},{"data":"Sana Jeelani Khan","value":"5aa75d8fd2ccda0fa0006187"},{"data":"Asad Hussain Khan","value":"5aaa51ead2ccda0860002692"}.....
【问题讨论】:
标签: javascript jquery ajax autocomplete