Передача дополнительной переменной jqueryui автозаполнение - PullRequest
1 голос
/ 28 июня 2011

Я нашел хорошую статью о jqueryui auto complete с здесь .Это показывает, как получить данные из MySQL, используя JSON.Работает отлично.Но я должен отправить значение переменной, как показано ниже.

Index.php

<form>
<select name="typeo" id="typeo" class="select" title="Select Country from List">
    <option>None</option>
    <option>US</option>
<option>UK</option>
</select>

<input type="text" id="state"  name="state" /> <input readonly="readonly" type="text" id="abbrev" name="abbrev" maxlength="2" size="2"/></p>
    <input type="submit" name="submit" value="Submit" /></p>

И jquery

$('#abbrev').val("");

        $("#state").autocomplete({
            source: "states.php",
            minLength: 2,
            select: function(event, ui) {
                $('#state_id').val(ui.item.id);
                $('#abbrev').val(ui.item.abbrev);
            }
        });
    });

Теперь я хочу отправить значение typeo в states.php, чтобы запрос mysql мог выглядеть как

"SELECT statename, statecode FROM states where country='$typeoValue' AND statename LIKE '%$states%'"

Так как я могу отправить значение typeo?Кто-нибудь может мне помочь.Благодаря.

1 Ответ

3 голосов
/ 28 июня 2011

Вам придется использовать аргумент callback для source.

Что-то вроде этого должно работать (не проверено).

$('#abbrev').val("");

        $("#state").autocomplete({
            source: function(term, callback) {
                callback($.getJSON('states.php', {states: term, typeo: $("#typeo").val()}));
            },
            minLength: 2,
            select: function(event, ui) {
                $('#state_id').val(ui.item.id);
                $('#abbrev').val(ui.item.abbrev);
            }
        });
    });

Больше информации об этом есть http://jqueryui.com/demos/autocomplete/

Третий вариант, обратный вызов, обеспечивает наибольшую гибкость и может использоваться для подключения любого источника данных к автозаполнению.Обратный вызов получает два аргумента:

Объект запроса с единственным свойством, называемым «term», который ссылается на значение, находящееся в данный момент в текстовом вводе.Например, когда пользователь ввел «новый йо» в поле города, термин «автозаполнение» будет равен «новый йо».

ответный обратный вызов, который ожидает, что в одном аргументе будут содержаться данные, предлагаемые пользователю,Эти данные должны быть отфильтрованы на основе предоставленного термина и могут быть в любом из форматов, описанных выше для простых локальных данных (String-Array или Object-Array с меткой / значением / обоими свойствами).Это важно при предоставлении пользовательского обратного вызова источника для обработки ошибок во время запроса.Вы всегда должны вызывать ответный обратный вызов, даже если вы столкнулись с ошибкой.Это гарантирует, что виджет всегда имеет правильное состояние.

...