jQuery UI autoComplete - передать ему значение из другого поля

Я прикрепляю автозаполнение jQuery UI к полю контакта, которое работает, но теперь мне нужно также передать company_id (динамически), чтобы ограничить поиск не только поисковыми символами, но и компанией, которую пользователь ранее выбрал. Т.е. если пользователь вводит «джо», все контакты, содержащие «джо», которые находятся в пределах идентификатора компании, передаются.

Между прочим, remote.php возвращает идентификатор и значение, поэтому я могу заполнить как contact_name, так и contact_id. Эта часть работает.

Я просто не могу понять, как передать ему поле company_id.


    $( "#contact_name ).autocomplete({
        source: 'remote.php?t=contactSearch',
        minLength: minlen,
        select: function( event, ui ) {
             $( "#contact_id" ).val(ui.item.id );
        }
    });

Благодарность!


person sdfor    schedule 17.12.2010    source источник


Ответы (1)


После долгих исследований, проб и ошибок это работает для меня.

Итак, что это делает:
Пользователь выбрал компанию перед этим кодом (не показан),
Автозаполнение ниже прикрепляет contact_name, а также передается company_id.
remote.php возвращает массив как идентификатор, так и значение контактов, которые соответствуют критериям частичного поиска и принадлежат данной компании. Когда пользователь нажимает на значение, имя контакта помещается в поле автозаполнения (для этого нет специального кода, автозаполнение делает это автоматически), а id помещается в поле contact_id.

        $( "#contact_name" ).autocomplete({
            source: function(request, response) {
                $.getJSON ('remote.php',
                { term: request.term, company_id:$('#company_id').val() }, 
                response );
            },
            select: function( event, ui ) {
                $( "#contact_id" ).val(ui.item.id );
            }
        });


A look at a simplified version of remote.php is:


$myDataRows = array ();
$search = addslashes($_REQUEST['term']);
$company_id = addslashes($_REQUEST['company_id']);

$sql = "SELECT c.contact_id as `id`, contact_name as`value` FROM contacts c
    WHERE c.company_id = '$company_id'  and c.contact_name LIKE '%$search%' ";

$result = mysql_query ($sql);

while ($row = mysql_fetch_assoc($result)) {
   array_push($myDataRows, $row);
}

$ret = json_encode ($myDataRows);

echo $ret;

person sdfor    schedule 18.12.2010