来自jQuery UI site(来源):
$( "#birds" ).autocomplete({
source: "search.php",
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});
因为我看到没有选项如何使用 发布数据 向"search.php"
发出ajax请求。
但我需要这样做才能从之前的输入字段发送一些过滤器(当前字段: city ,上一个字段: country )。
怎么做?
谢谢!
答案 0 :(得分:18)
尝试将源更改为使用$ .post的方法:
$("#birds").autocomplete({
source: function (request, response) {
$.post("search.php", request, response);
},
...
答案 1 :(得分:5)
$( "#birds" ).autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
url:"search.php",
data: request,
success: response,
dataType: 'json'
});
}
}, {minLength: 3 });
//-------------------------
//search.php - example with request from DB
//
$link = mysql_connect($mysql_server, $mysql_login, $mysql_password)
or die("Could not connect: " . mysql_error());
mysql_select_db($mysql_database) or die("Could not select database");
mysql_set_charset('utf8');
$req = "SELECT mydata FROM $mysql_table WHERE mydata LIKE '".$_REQUEST['term']."%' ORDER BY mydata ASC";
$query = mysql_query($req);
while($row = mysql_fetch_array($query))
{
$results[] = array('label' => $row['mydata']);
}
echo json_encode($results);
?>
答案 2 :(得分:2)
我有同样的需求,stackoverflow没有一个例子正常工作。
通过测试不同作者的贡献并在这里和那里进行调整,以下示例很可能是任何人在自动完成中寻找的
发送POST请求。
不需要调整主自动完成功能UI。
发送多个参数进行评估。
从数据库PHP文件中检索数据。
所有信用都归功于我使用他们的样本答案的许多人 制作这个工作样本。
$( "#employee_name" ).autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
url:"employees.php",
data: {term:request.term,my_variable2:"variable2_data"},
success: response,
dataType: 'json',
minLength: 2,
delay: 100
});
}});
答案 3 :(得分:0)
以下对我来说效果很好。我需要一些自定义数据,所以我拉了搜索" term"请求中的term: request.term
如下:
jQuery('.some-autocomplete').autocomplete({
source: function(request, response) {
jQuery.post(ajaxurl, {action: 'some_content_search', type: type, term: request.term}, response, 'json');
},
minLength: 2,
...
答案 4 :(得分:0)
实际上,您可以使用 type:“ post” :
$( "#birds" ).autocomplete({
source: "search.php",
type: "post"
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});