2011-11-21 3 views
0

Привет, все, что я видел, все вопросы, связанные с этой проблемой, но не смогли найти решение. Я работаю с автозаполнением jquery ui. Мой сценарий таков:jquery ui autocomplete не работает точно

У меня есть флажок. Когда он установлен, на сервер отправляется запрос ajax, который извлекает некоторую информацию из базы данных и возвращает данные json encode. В функции успеха я вызываю автозаполнение jquery, а в источнике я предоставляю данные, возвращаемые моим аякс-запросом. Когда я начинаю писать некоторые вещи в моем текстовом поле (я могу видеть на вкладке консоли Firebug) а get посылается запрос, имеющий все свои опции, которые возвращаются из Ajax запроса, как этот

http://localhost/project/module/controller/index/%5B%22Mobile%22,%22Watch%22,%22Lamps%22,%22Harry%20Potter%22,%22Suitcase%22,%22Halloween%22,%22Xmas%22,%22Multiple%22,%22oil%22,%22Empty%20Keywords%22,%22iphone%20theme%22,%22Edit%20theme%22,%22Final%20Theme%22%5D?term=mo 

и ничего не происходит. Нет параметров, показанных как автоматическое завершение. Мой код выглядит следующим образом

<input type="checkbox" name="prebuilt-Themes" id="prebuilt-Themes" onclick="get_all_themes();"> 

Текст окна

<input type="text" id="themes" style="display: none;" class="ui-autocomplete-input"> 

И функцию, которая обрабатывает запрос Ajax

function get_all_themes() 
{ 

    if($("#prebuilt-Themes").is(':checked')) 
    {  
    $('#themes').show(); 
    $.ajax({ 
      type:'POST', 
      //data:({string:'abc'}), 
      url: "<?= $this->baseUrl(); ?>/module/controller/getallthemes", 
      success:function(data) 
      { 
       $(function() { 
       $("#themes").autocomplete({ 
        source: data 

         }); 
       }); 
      } 
     }); 
    } 


} 

Данные, которые я получаю от моего запроса Ajax выглядит следующим образом

["Mobile","Watch","Lamps","Harry Potter","Suitcase","Halloween","Xmas","Multiple","oil","Empty Keywords","iphone theme","Edit theme","Final Theme"] 

Может ли ybody ведет меня, что я делаю неправильно?

ответ

1

Вам нужно сделать Ajax ответ в формате JSON с идентификатором, этикетки и значение, как так:

[ { "id": "Luscinia svecica", "label": "Bluethroat", "value": "Bluethroat" }, { "id": "Motacilla flava", "label": "Blue-headed Wagtail", "value": "Blue-headed Wagtail" }, { "id": "Cyanistes caeruleus", "label": "Blue Tit", "value": "Blue Tit" }, { "id": "Monticola solitarius", "label": "Blue Rock Thrush", "value": "Blue Rock Thrush" }, { "id": "Anas discors", "label": "Blue-winged Teal", "value": "Blue-winged Teal" }, { "id": "Merops persicus", "label": "Blue-cheeked Bee-eater", "value": "Blue-cheeked Bee-eater" }, { "id": "Tarsiger cyanurus", "label": "Red-flanked Bluetail", "value": "Red-flanked Bluetail" } ] 
Смежные вопросы