JQuery autocomplete передача переменной

setevoi

Создатель
Регистрация
10 Апр 2013
Сообщения
43
Реакции
15
jquery autocomplete передача переменной для автозаполнения полей не могу разобраться как правильно это сделать. нужно передать id чтобы выполнить автоподбор

HTML:
<input class="mete" id="39" name="chars[39]" value="" type="text">
<input class="mete" id="40" name="chars[40]" value="" type="text">
<input class="mete" id="41" name="chars[41]" value="" type="text">
...


PHP:
$(function() {
  $(".mete").autocomplete("search.php")  
});

пробую так, но не работает

PHP:
$(".mete").each(function () {
     var $that = $(this);
     $that.autocomplete({source: "search.php?id=" + $that.attr('id')});
});

работает только если в явном виде передать переменную
Код:
$(".mete").autocomplete("search.php?id=39")
 
Последнее редактирование модератором:
Вы можете сначала попробовать отладить, чтобы убедиться, URL 100% правильно, таким образом:

PHP:
$(".mete").each(function () {
     var $that = $(this);
     var uri = "search.php?id=" + $that.attr('id');
     alert(uri);
     //$that.autocomplete({source: uri});
});

Если URI прав, чем вы можете делать вещи таким образом:

PHP:
$(".mete").each(function () {
     var $that = $(this);
     var uri = "search.php?id=" + $that.attr('id');
     $that.autocomplete(uri);
     // Если вам нужно больше вариантов сделать:
     $that.autocomplete("option", "minLength", 10);
     $that.autocomplete("option", "disabled", true);
});
 
Вы можете сначала попробовать отладить, чтобы убедиться, URL 100% правильно, таким образом:

Спасибо. Правда уже решил задачу несколько подругому

Код:
$(document).ready(function(){

function ac(id) {
    $('#' + id + '').autocomplete("search.php?a=" + id + '', {       
        minChars:0,       
        autoFill:true
      });   

   
}

$(".mete").click(function () {
  var id = $(this).attr("id"); 
  ac(id);
});

});

Теперь думаю размышляю, как добавить еще одну функцию, которая по клику выводила бы весь список элементов.
как я понял надо использовать метод search

HTML:
<input class="mete" id="39" name="chars[39]" value="" type="text">
<a href="#" class="meteall" id="39" >все варианты</a>


Код:
.autocomplete("search", "");
 
Последнее редактирование модератором:
Везде вместо id="23" лучше, чтобы сделать его data-id="23" - действительно для HTML5. И чем попробуйте следующее:

PHP:
$('a.meteall').on({
    click: function () {
        $('input[data-id="' + $(this).attr('data-id') + '"]').autocomplete("search.php");
    }
});

На стороне сервера - в "search.php" вы должны проверить $_GET['id'] - если она не действительна, то вы должны вернуться все варианты.
 
Везде вместо id="23" лучше, чтобы сделать его data-id="23" - действительно для HTML5. И чем попробуйте следующее:

PHP:
$('a.meteall').on({
    click: function () {
        $('input[data-id="' + $(this).attr('data-id') + '"]').autocomplete("search.php");
    }
});

На стороне сервера - в "search.php" вы должны проверить $_GET['id'] - если она не действительна, то вы должны вернуться все варианты.
Вами не правильно понят вопрос. на стороне сервера всегда возвращаются все варианты для данного id
при отсутствие значения сервер не возвращает значений.
в противном случаи, это было бы несколько 1 тыс строк :D

еще раз про задачу.
при клике на ссылку надо вывести все значения для данного id
 
Вами не правильно понят вопрос. на стороне сервера всегда возвращаются все варианты для данного id
при отсутствие значения сервер не возвращает значений.
в противном случаи, это было бы несколько 1 тыс строк :D

еще раз про задачу.
при клике на ссылку надо вывести все значения для данного id
Обратись на сервер с помощью аякса, сделай выборку в базе данных по id, верни значения, сформируй список. Или я что-то не так понял)
 
ну почти так. только это надо сделать средствами Для просмотра ссылки Войди или Зарегистрируйся
То есть значения для такого-то id ты с сервера уже получил и автокомплит создал? И тебе надо просто показать все результаты? тогда должен работать
Код:
.autocomplete("search", "");
вот смотри в этом примере он работает Для просмотра ссылки Войди или Зарегистрируйся
 
То есть значения для такого-то id ты с сервера уже получил и автокомплит создал? И тебе надо просто показать все результаты? тогда должен работать
Код:
.autocomplete("search", "");
вот смотри в этом примере он работает Для просмотра ссылки Войди или Зарегистрируйся

Да практически оно.
осталось придумать как "search.php?a=" + id + '' приладить :)
 
Да практически оно.
осталось придумать как "search.php?a=" + id + '' приладить :)
Это бесмысленно. У тебя всего один автокомлплит на странице, он не создается каждый раз новый(при щелчке по полю), а уничтожается и потом уже создается.
Можно в обработчике клика .meteall создававать каждый раз заново автокомплит для текущего поля, как будто ты щелкнул по полю(.mete). После этого выполняй поиск search и все)
 
Назад
Сверху