автозаполнение jQuery UI: как отправить данные post?
С jQuery UI site (источник veiw):
$( "#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 );
}
});
Так как я вижу, что нет вариантов, как сделать запрос ajax с POST-данные до "search.php"
.
но мне нужно сделать это, чтобы отправить какой-то фильтр из предыдущего поля ввода (текущее поле: города, предыдущем поле: страны).
Как это сделать?
спасибо!
4 ответов
попробуйте изменить источник на метод, который использует $.сообщение:
$("#birds").autocomplete({
source: function (request, response) {
$.post("search.php", request, response);
},
...
$( "#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);
?>
У меня была такая же потребность, и ни один пример из stackoverflow не работал должным образом.
путем тестирования различных вкладов авторов и настройки здесь и там приведенный ниже пример, скорее всего, то, что любой будет искать в автозаполнении, что
отправить запрос POST.
не требует настройки интерфейса автозаполнения.
посылает вне множественные параметры для оценка.
извлекает данные из файла 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
});
}});
следующее хорошо сработало для меня. Мне нужны были некоторые пользовательские данные, поэтому я вытащил поиск "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,
...