Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSON Autocomplete, не выпадает список найденных совпадений. 
:(
    Опции темы
Vavilen
  Дата 17.1.2012, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 18.1.2009

Репутация: нет
Всего: нет



Добрый день!
Есть скрипт 
Код

<script type="text/javascript">
$(document).ready(function(){




function liFormat (data) {
    //var obj = jQuery.parseJSON(row);
    //var result = obj.element;
    var result=data[0].element;
    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);
}

// --- Автозаполнение ---
$("#example").autocomplete("/get_element_json/", {
    delay:10,
    minChars:2,
    matchSubset:1,
    autoFill:true,
    matchContains:1,
    cacheLength:10,
    selectFirst:true,
    formatItem:liFormat,
    maxItemsToShow:10,
    onItemSelect:selectItem
    
    
});

// --- Автозаполнение ---
});
</script>

, который, по идее, должен выводить возле текстового поля 
Код

<input  id="example" type="text"/>

значения, выбираемые из поступившего JSON-ответа сервера на запрос клиента
JSON-ответ:
Код

[
   {
      "element" : "element1"
   },
   {
      "element" : "element2"
   },
   {
      "element" : "element3"
   },
   {
      "element" : "element4"
   }
]

Но по какой-то причине это не происходит. 
Проверил и работает:
- отправка параметра на сервер
- ответ сервера в виде JSON( пример приведен выше)
ТО есть, полученнный ответ не парсится и не выводится в в виде выпадающего списка.
Очень нужна помощь, т.к. бьюсь уже целый день!
Заранее благодарен!
PM MAIL   Вверх
$дмитрий
Дата 17.1.2012, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 5
Всего: 45



Есть подозрения что нужно указать тип данных
Код

dataType: 'json'


Это сообщение отредактировал(а) $дмитрий - 17.1.2012, 23:04
PM MAIL   Вверх
Vavilen
Дата 18.1.2012, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 18.1.2009

Репутация: нет
Всего: нет



Цитата($дмитрий @  17.1.2012,  23:03 Найти цитируемый пост)
Есть подозрения что нужно указать тип данных

Код


dataType: 'json'


 

Посмотрел в доках. У jquery.autocomplete нет в options возможности указать dataType.
Я попробовал, и сразу перестал уходить параметр q.
PM MAIL   Вверх
ksnk
Дата 18.1.2012, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(Vavilen @  18.1.2012,  10:19 Найти цитируемый пост)
 нет в options возможности указать dataType.
Я попробовал, и сразу перестал уходить параметр q.

Значит что-то есть.  smile 

Vavilen, Откуда дровишки плагин взялся? Надо искать и спрашивать в том самом месте. Поковырять сайт поддержки. Спросить автора. Если нету сайта поддержки - бросить плагин и найти более другой, с поддержкой или взять автокомплит из jQuery.UI


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Vavilen
Дата 19.1.2012, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 18.1.2009

Репутация: нет
Всего: нет



Всем спасибо! Реализовал на jquery.ui, используя плагин autocomplete.
Вот код: 
Код

<script>
$(function() {
    $( "#tags" ).autocomplete({
        source: function(request,response) {
            $.ajax({
                url: "/get_element_json",
                dataType: "json",
                data: {
                    featureClass: "P",
                    style: "full",
                    maxRows: 12,
                    search: request.term
                },
                success: function(data) {
                    response($.map(data, function(item) {
                        return {
                            label: item.element,
                            value: item.element
                        }
                    }));
                }
            });
        },
        minLength: 2
    });
    });
    </script>


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.