0

名前と住所のオートコンプリート候補がセミコロン (;) で区切られて表示されるテキスト フィールドがあります。私はcodeigniterを使用しており、以下はjqueryコードです:

//to retrieve the name and address values
var business=new Object();
$.ajax({
    'async': false,
    'global': false,
    'url': base_url + '/controller_name/method1',
    'dataType': "json",
    'success': function (data) {
        $.each(data, function(key, value){
            bb = value.b_name+'; '+value.b_add;
            if(key==0)
                bb_json = JSON.stringify(bb);
            else
                bb_json += JSON.stringify(bb);
        });     
    }
});

上記のコードは問題なく動作し、すべての名前とアドレスを bb_json に保存します。今、オートコンプリートの提案リストに表示したいです。私がこれのために書いたコードは次のとおりです-

$('#b_name').autocomplete({
    source      : bb_json,
    max         : 5,
    minLength   : 2,
    open        : function(event, ui) {
        $('ul.ui-autocomplete').addClass('f-dropdown').attr('id', 'bb_ul');
        $(this).autocomplete("widget");  
    }
});

しかし、これは機能していません。誰か助けてくれませんか?

4

2 に答える 2

1

$ajax().success() コールバックで有効な JavaScript 配列を生成する必要があります。

$.ajax({
    'async': false,
    'global': false,
    'url': base_url + '/controller_name/method1',
    'dataType': "json",
    'success': function (data) {
        //data = [{b_name:"foo1",b_add:"bar1"},{b_name:"foo2",b_add:"bar2"},{b_name:"foo3",b_add:"bar3"}]
        bb_json = []

        $.each(data, function(key, value){
            bb = value.b_name+'; '+value.b_add;
            bb_json.push(bb);
        });
    }
}); 

この作品。

于 2013-06-18T04:29:31.113 に答える