Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.03.2013, 19:21
Аспирант
Отправить личное сообщение для Bezlepkin Посмотреть профиль Найти все сообщения от Bezlepkin
 
Регистрация: 26.01.2011
Сообщений: 41

$.ajax в autocomplete
Привет! Подскажите как осуществить $.ajax в autocomplete
$(input).autocomplete({
    source: function(request, response) {
      $.ajax({
        url: Drupal.settings.geo.path,
        dataType: 'json',
        data: {
          act: 'get_other_cities',
          country: $(selects['country']).val(),
          value: request.term,
        },
        success: function(data) { <- вот тут не знаю как
          response({
            return{
            }
          }); <- и до сюда
        }
      });
    },
    autoFocus: true,
  });


Как осуществить success?
Ответить с цитированием
  #2 (permalink)  
Старый 25.03.2013, 19:50
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Bezlepkin
Как осуществить success?
www.successbird.com/
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2013, 20:46
Аспирант
Отправить личное сообщение для Bezlepkin Посмотреть профиль Найти все сообщения от Bezlepkin
 
Регистрация: 26.01.2011
Сообщений: 41


Я имел ввиду как вывести данные!
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2013, 22:21
Аспирант
Отправить личное сообщение для Bezlepkin Посмотреть профиль Найти все сообщения от Bezlepkin
 
Регистрация: 26.01.2011
Сообщений: 41

Сделал так:

$(input).autocomplete({
    source: function(request, response) {
      $.ajax({
        url: Drupal.settings.geo.path,
        dataType: 'json',
        data: {
          act: 'get_other_cities',
          country: $(selects['country']).val(),
          value: request.term,
        },
        success: function(data) {
          response($.map(data.cities, function(item) {
          
         var elementList = '<span class="city">' + item[1] + '</span>';
         if (item[2] != '') {
           elementList += item[2] + ',<br>';
         }
         if (item[3] != '') {
           elementList += item[3];
         } 
         return {
            label: elementList,
            value: item[1]
         }
         }));
        }
      });
    },
    autoFocus: true,
  });


Возвращается все, но html теги выводятся строкой (не обробатываются)
Ответить с цитированием
  #5 (permalink)  
Старый 26.03.2013, 11:55
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

Bezlepkin,

Используй .html() вместо .text() и будет счастье.

Неплохо было бы показать функцию response, а так остается только гадать.
Ответить с цитированием
  #6 (permalink)  
Старый 26.03.2013, 16:59
Аспирант
Отправить личное сообщение для Bezlepkin Посмотреть профиль Найти все сообщения от Bezlepkin
 
Регистрация: 26.01.2011
Сообщений: 41

А где вы увидели .text()?
А разьве это не функция response?

response($.map(data.cities, function(item) {
         var elementList = '<span class="city">' + item[1] + '</span>';
         if (item[2] != '') {
           elementList += item[2] + ',<br>';
         }
         if (item[3] != '') {
           elementList += item[3];
         }
         return {
            label: elementList,
            value: item[1]
         }
         }));
Ответить с цитированием
  #7 (permalink)  
Старый 26.03.2013, 17:00
Аспирант
Отправить личное сообщение для Bezlepkin Посмотреть профиль Найти все сообщения от Bezlepkin
 
Регистрация: 26.01.2011
Сообщений: 41

Я еще видел такую фишку:
.data(и тут как то выводится html и все параметры для autocomplete)
Ответить с цитированием
  #8 (permalink)  
Старый 27.03.2013, 10:50
Аспирант
Отправить личное сообщение для Bezlepkin Посмотреть профиль Найти все сообщения от Bezlepkin
 
Регистрация: 26.01.2011
Сообщений: 41

Сделал так, все работает.
А можно ли поменять классы для ul и li в выпадающем списке autocomplete?

$(input).autocomplete({
    source: function(request, response) {
      $.ajax({
        url: Drupal.settings.geo.path,
        dataType: 'json',
        data: {
          act: 'get_other_cities',
          country: $(selects['country']).val(),
          value: request.term,
        },
        success: function(data) {
          response($.map(data.cities, function(item) {
            return {
              cityID:   item[0],
              label:    item[1],
              value:    item[1],
              city:     item[1],
              state:    item[2],
              district: item[3]
              
            }

          }));
        }
      });
    },
    autoFocus: true,
  })
  .data('autocomplete')._renderItem = function( ul, item ) {
    return $( '<li onmousemove="Select.itemMouseMove(5, 17, this)" val="' + item.cityID + '"></li>' )
      .data( "item.autocomplete", item )
      .append('<a href=" + item.url + ">' + '<span class="city">' + item.city + '</span>' + item.state + "<br>" + item.district + "</a>")
      .appendTo( ul );
    };
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
$.ajax в autocomplete Bezlepkin AJAX и COMET 0 25.03.2013 18:38
Выделение символов ввода в jQuery Autocomplete Luter1984 Библиотеки/Тулкиты/Фреймворки 1 04.02.2013 10:13
Ошибка вызова $.ajax Liv AJAX и COMET 7 17.01.2013 17:36
Проблема с $.ajax Iesua jQuery 5 14.07.2012 17:17
Проблема с обновлением формы на $.ajax функцыи Svjatoslav AJAX и COMET 0 27.04.2012 16:44