2012-05-01 25 views
0

jQuery UIのオートコンプリートを使用しています。この場合、JSONとしてコンソールに結果が表示されますが、オートコンプリートメニューは表示されません。なぜどんなアイデア?jQueryオートコンプリートではコンソールに結果が表示されますが、ドロップダウンでは表示されません。

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 101; top: 0px; left: 0px; display: none; "></ul> 

(私は検索内容に応じて変更)、コンソール・ショー:

私は2つの文字の後に入力を開始行う際

var cct = $('input[name=csrf_token_name]').val(); 

$('input[name=search]').autocomplete({ 
    source: function() { 
     $.ajax({ 
      type: 'POST', 
      url: '<?php echo site_url('ajax/getSearchKeywords'); ?>', 
      dataType: 'json', 
      data: { search:$('input[name=search]').val(), csrf_token_name: cct }, 
      success: function(data) { console.log(data); }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { console.log(errorThrown) } 
     }); 
    }, 
    appendTo: 'section.search', 
    minLength: 2, 
    delay: 0, 
    selectFirst: true 
}); 

また、jQueryがDOMに次の要素を作成しません

["0j0sZsOqy0", "z57RuUeVnb", "nF4YFR6pMk"] 

そして、これは私のgetSearchKeywords機能である:

public function getSearchKeywords() 
{ 
    header('Cache-Control: no-cache, must-revalidate'); 
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
    header('Content-type: application/json'); 

    echo json_encode($this->tasks->getSearchKeywords($this->input->post('search'))); 
} 
+0

例を投稿できますか? – j08691

+0

更新済み、これで十分ですか? – dallen

+0

私はオートコンプリートの別のインスタンスがうまく動作することを追加する必要があります。 – dallen

答えて

2

コールバック関数を正しく使用していません。

あなたのソース関数は、2つの引数を取る必要があります - オブジェクトを含むオブジェクトと、結果を渡すためのコールバック関数。 ajaxを介して条件を取得した後、コールバック関数を呼び出す必要があります。その後

function getTerms(term_obj, callback) { 
     $.ajax({ 
      type: 'POST', 
      url: '<?php echo site_url('ajax/getSearchKeywords'); ?>', 
      dataType: 'json', 
      data: { search:term_obj.term, csrf_token_name: cct }, 
      success: function(data) { callback(data) }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { console.log(errorThrown) } 
     }); 


} 

、あなたの自動入力補完のソースとして^^その関数を渡しますよう

何か。

+0

完璧、サムありがとう! – dallen

関連する問題