0

これは本当に私を悩ませています、うまくいけば誰かが何が起こっているのか理解できるでしょう。

JS:

        $('#search').typeahead({
    source: function(typeahead, query){ 
        $.ajax({
            url: "/autocomplete_bs.php",
            type: "GET",
            data: "q="+query ,
            dataType: "JSON",
            async: true,
            success: function(data){
                if (data == null) {
                    data = '{"name":"name","url":"url"}';
                }
                typeahead.process(data);        //If the returned object is not a null json object, THEN process it.
            }
        });
    },
    property: 'name',
    items:8,
    onselect: function (obj) { 
        window.location = obj.url;
    }
});

autocomplete_bs.phpはここにあります:http ://examine.com/autocomplete_bs.php?q = xxxx

ここでオートコンプリートをテストできます:http://examine.com/(右上)

気が遠くなるのは、いくつかの結果が表示されるものと表示されないものがあることです。

  • 診る。com / autocomplete_bs.php?q=bacopa-表示
  • 診る。com / autocomplete_bs.php?q=aging-表示
  • 診る。com / autocomplete_bs.php?q = life-表示されませんか?
  • 診る。com / autocomplete_bs.php?q = food-最初の結果のみを表示し、2番目の結果は表示しません
  • 診る。com / autocomplete_bs.php?q = creat-複数の結果を表示しますが、「硝酸クレアチンとは何ですか?」をスキップします。

コンソールには、これを説明するエラーは表示されません。どんな手掛かり?

(私の評判が低すぎて、他のプライマリログインを忘れてURLを壊さなければならなかったので申し訳ありません)。

4

2 に答える 2

1

ウェルプ、typeaheadに表示内容をフィルターで除外するマッチャー関数があることを忘れてしまいました。

したがって、この行はそれを修正しました:

matcher: function () { return true; },
于 2012-11-15T11:43:09.493 に答える
0

Examin.com/autocomplete_bs.php?q=life-返されるオブジェクトの「name」フィールドに「life」が含まれていないため、何も表示されません

それは戻ります:

[{"name":"Stack - Anti-Aging","url":"http://examine.com/autocomplete_go.php?q=life&url=stacks/anti-aging.html"}]

つまり、サーバーがより多くのアイテムを返した場合でも、「name」に実際の文字列(例:「life」)が含まれる結果のみを表示するようにTypeaheadを設定します。

于 2012-11-14T19:48:10.627 に答える