0

リモートjson文字列からキーワードのリストを取得するためにJquery tag-itを使用しています-これは正常に機能します。

しかし、私が今持っているのは、入力時にjqueryが「ドリルダウン」する代わりに、検索クエリを実行しようとする状況です

somefile.php?q=foo

(foo は今入力したものです。これにより、タグ リストがドリルダウンされ、「foo」を含むものだけが表示されます。

私はLaravel 4を使用しているので、基本的にajaxリクエストを変更して、代わりに/somefile/foo. これを行う方法はありますか?私は狂ったように探し回っていますが、解決策を見つけることができません。

参考までに、私が現在持っている tag-it コードは次のとおりです。

$("#tags").tagit({
    autocomplete: {delay: 0, minLength: 2},
    allowSpaces: true,
    onlyAvailableTags : false,
    tagSource: function(search, showChoices)
    {
        var that = this;
        $.ajax({
            url:        "/admin/keywords/autocomplete",
            data:   { term:search.term },
            dataType: "json",
            success:    function(choices)
            {
                showChoices(that._subtractArray(choices, that.assignedTags()));
            }
        });
    }
});
4

1 に答える 1

0

わかりました、試行錯誤を繰り返して自分でこれを解決できたと思います-これで機能します。

次のパスがスローされたものに対して「%LIKE%」SQLクエリを実行するように、Laravelルーティングを微調整しました。

http://domain.com/admin/keywords/autocomplete/search/{term}

これを使用して、tagit プラグイン内の ajax 呼び出しを変更し、代わりに入力を URL の末尾に追加しました。最終的なコードは次のようになります。

$("#tags").tagit({
    autocomplete: {delay: 0, minLength: 2},
    allowSpaces: true,
    onlyAvailableTags : false,
    tagSource: function(search, showChoices)
    {
        var that = this;
        $.ajax({
            url:        "/admin/keywords/autocomplete/search/" + search.term,
           // data:   { term:search.term },
            dataType: "json",
            success:    function(choices)
            {
                showChoices(that._subtractArray(choices, that.assignedTags()));
            }
        });
    }
});

これは機能しているようで、驚くほどきびきびしています。これを行うためのより良い方法がある可能性が高いことはわかっていますが、これが今のところ私ができる最善の方法です。

于 2013-05-13T14:54:37.137 に答える