0

私は Twitter Bootstrap とタイプアヘッドを使用しています。

プラグインをダウンロードします: Twitter Bootstrap Typeahead Plugin Extension

長い間、静的なjavascript json配列を使用すると機能します。

$('#demo1').typeahead({
        source: [
            { id: 9000, name: 'Aalborg' },
            { id: 2, name: 'Montreal' },
            { id: 3, name: 'New York' },
            { id: 4, name: 'Buffalo' },
            { id: 5, name: 'Boston' },
            { id: 6, name: 'Columbus' },
            { id: 7, name: 'Dallas' },
            { id: 8, name: 'Vancouver' },
            { id: 9, name: 'Seattle' },
            { id: 10, name: 'Los Angeles' }
        ],
        itemSelected: displayResult
    });

ajax を使用しようとすると、すべてが実行されます。私のコードは次のようになります。

$('.typeahead').typeahead({
            ajax: '/actions/search/synonymSearch',
            itemSelected: displayResult
        });

そして、このjson配列を返します(すべての方法で再構築できますが、機能させることはできません)

[
    { id: 1, name: 'Toronto' },
    { id: 2, name: 'Montreal' },
    { id: 3, name: 'New York' },
    { id: 4, name: 'Buffalo' },
    { id: 5, name: 'Boston' },
    { id: 6, name: 'Columbus' },
    { id: 7, name: 'Dallas' },
    { id: 8, name: 'Vancouver' },
    { id: 9, name: 'Seattle' },
    { id: 10, name: 'Los Angeles' }
]

プラグインのホームページ。 https://github.com/tcrosen/twitter-bootstrap-typeahead

私はホーベ・エンバーディがここで私を助けることができます:)

すべての助けに感謝します:)

編集 - 問題解決! :)私のPHPファイル に追加header("content-type: application/json"); するだけで、この回答は他の人々に役立ちます! :)

4

2 に答える 2

0

あなたが経験しているこの問題は、ajax 経由で呼び出しているページが正しいヘッダーを返していないことが原因である可能性があります。

PHP を使用している場合header('Content-type: application/json');は、JSON 配列を含むドキュメントに追加してみてください。

于 2013-03-18T04:33:47.167 に答える
0

あなたの配列をtypeahead読み取ることができないと思うので、最初に解析します。source

var data = [{"id":"9000","name":"Aalborg"},{"id":"9220","name":null},{"id":"9210","name":null},{"id":"9200","name":"Aalborg SV"}];

// using underscore.js get an array of the city names
var cities = _.pluck(data, "name");

// now start typeahead
$el.typeahead(
    source: cities,
    // the value of the `city` selected gets passed to the onselect  
    onselect: function(city) {
         // get the index of city selected from the data array
         var i = _.indexOf(data, city);
         // then using the index get what ever other value you need from the array
         // and insert in the DOM etc..

    }
);
于 2012-10-29T09:33:41.477 に答える