Показать сообщение отдельно
  #4 (permalink)  
Старый 11.04.2009, 22:26
Аватар для EGORR
Интересующийся
Отправить личное сообщение для EGORR Посмотреть профиль Найти все сообщения от EGORR
 
Регистрация: 11.04.2009
Сообщений: 21

Други мои! Растолкуйте и мне как получить ID из <li>.
Все по порядку...
Имею инпат
<input type="text" id="custSearch" value="" style="width: 200px;" />

В него autocomplete() добавляет результат запроса к БД.
PHP обработчик формирует вот такой список для input
foreach ($CustomList as $val) {
        echo $val['familia']." ".$val['cust_name']." ".$val['otchestvo']."|" .$val['customer_id']. "\n";
        }

На клиентской стороне, в списке <li>...</li> встречаю строку вида
Цитата:
Агапов Василий Михайлович|386
Все ясно: элемент [0] - ФИО, элемент [1] - айди записи.
Таперича мне надо получить по событию onItemSelect этот самый элемент [1] и передать его дальше, другому скрипту.
Исходя из мануала, о котором упоминал be3, его можно получить подобной функцией
function selectItem(li) {
    if( li == null ) var sValue = 'А ничего не выбрано!';
    if( !!li.extra ) var sValue = li.extra[1];
    else var sValue = li.selectValue;
    alert("Выбрана запись с ID: " + sValue);
}

Но у меня она ничего не сообщает. Молчит!
Что я не так делаю?
На всякий случай цитирую основной код.

$(document).ready(function(){


function liFormat (row, i, num) {
    var result = row[0] + '<p class=qnt>' + row[1] + ' тыс.чел.</p>';
    return result;
}
function selectItem(li) {
    if( li == null ) var sValue = 'А ничего не выбрано!';
    if( !!li.extra ) var sValue = li.extra[1];
    else var sValue = li.selectValue;
    alert("Выбрана запись с ID: " + sValue);
}

$(document).ready(function() {
	$("#custSearch").autocomplete(
		"customers/customers_list_for_search.php",
		{
    delay:10,
    minChars:2,
    matchSubset:1,
    autoFill:true,
    matchContains:1,
    cacheLength:10,
    selectFirst:true,
    formatItem:liFormat,
    maxItemsToShow:10,
    onItemSelect:selectItem
   
		}
	);

});

  }); //end readyfunction
Ответить с цитированием