ui autocomplete
Добрый день, форумчане! Снова за помощью. Может найдется у кого минутка. Предполагаю, что ситуация пустяковая, но моего скудного разума не хватает. Итак...
Есть поля input
<table id="tableTraffic">
<tr>
<td><input class='pole' type='text' name='Come'/></td>
</tr>
<tr>
<td><input class='pole' type='text' name='Come'/></td>
</tr>
</table>
Есть скрипт. sours приходится делать через функцию, т.к. для разных пользователей должен быть выбор из разных массивов. И всю голову сломал себе как должна выглядеть возвратная функция success. Что бы автокомплит заработал. Через фаербаг смотрю ответ json приходит, а вот как функцию вывода написать не догоняю. Помогите, а??? :)
$(function(){
var user = $('#userName').html();
$('.pole').autocomplete({
source: function(request, response){
$.ajax({
url: 'data.php',
dataType: 'json',
type: "GET",
data: {term: $('.pole').val(), user: user},
success: //????
}) // конец ajax
}, // конец source
minLength: 2,
});// конец автокомплит
});
Есть data.php файл, в котором создается массив
<?php
$user = $_GET['user'];
// Тут бла бла бла - сама функция в результате которой создается массив например
$items = array("Вилигельмо 2", "Вилигельмо 3", "Винипух", "Вино", "Крак", "Курица");
$term = trim($_GET['term']);
//Шаблон рег. выражения
$pattern = '/^'.preg_quote($term).'/iu';
if(!empty($user)){
echo json_encode(preg_grep($pattern, $items));
}
?>
Спасибо! |
У меня так:
$.ajax({
type: "GET",
url: "edit.php",
data: 'id='+t,
success: function(json){
...
var arr_arr=json;
$(function() {
$( "#company" ).autocomplete({
source: arr_arr[0]
});
});
$(function() {
//alert (arr_arr[2]);
$( "#position" ).autocomplete({
source: arr_arr[1]
});
});
...
Не могу посмотреть Ваш пример, но у меня, вроде, работает. Возможно, можно сделать лучше, я не сильно опытен. |
lok105,
function(data) {
response($.map(data, function(item) {
return {
label: item,
value: item
}
}));
}
|
lok105,
term: $('.pole').val() ??? может term: this.value |
Рони, спасибо! я понимал, что простое что-то должно быть. Работает!!! )))
Kyt, так же спс!! Рони, если ставлю term: this.value вместо term: $('.pole').val() то term не передается и возвращает весь массив значений или пустой если в php указать if(!empty($_GET['term']) |
lok105,
если полей несколько то $('.pole').val() значение только первого поля |
Да, с этим сейчас и разбираюсь, но term: this.value не отсылает GET['term'] не знаю почему
|
lok105,
назначайте autocomplete через цикл
$(function() {
var user = $("#userName").html();
$(".pole").each(function(indx, el) {
$(el).autocomplete({
source: function(request, response) {
$.ajax({
url: "data.php",
dataType: "json",
type: "GET",
data: {
term: el.value,
user: user
},
success: function(data) {
response($.map(data, function(item) {
return {
label: item,
value: item
}
}))
}
})
},
minLength: 2
})
})
});
|
Рони, супер! спасибо еще раз! работает!
|
| Часовой пояс GMT +3, время: 17:22. |