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, время: 00:24. |