JQueryプラグインを使用してプロジェクトの「オートコンプリート」機能を開発しています。2つの異なるソース(データベーステーブル)からユーザーに提案(一致した結果)を表示する必要があります。つまり、ajaxリクエストを2つのURLに対して送信する必要があります。時間。
できますか?
これについて何か提案があれば幸せです
JQueryプラグインを使用してプロジェクトの「オートコンプリート」機能を開発しています。2つの異なるソース(データベーステーブル)からユーザーに提案(一致した結果)を表示する必要があります。つまり、ajaxリクエストを2つのURLに対して送信する必要があります。時間。
できますか?
これについて何か提案があれば幸せです
オートコンプリートのソースとしてjavascript関数を使用します。内部で2つのajaxリクエストを実行し、レスポンスを1つにまとめることができます。
$('#myinput').autocomplete({
source: function(data, callback) {
$.ajax(firstUrl, {
...,
success: function(result1) {
$.ajax(secondUrl, {
success: function(result2) {
var mergedResults = result1.concat(result2);
callback(mergedResults);
}
});
},
}
}
私はjsdocu.comのために何かを書きました。ただし、検索するソースは1つだけです。ただし、ニーズに合わせて変更するのはそれほど難しくありません。
/** delayR by Yannick Albert | https://gist.github.com/3729753 **/
var delayR = function(a,b,c,d){c=null;return function(){d=this;clearTimeout(c);c=setTimeout(function(){a.apply(d,arguments)},b)}};
$("#s").bind('click keyup', delayR(function() {
var term = this.value,
url = $('#searchform').attr('action');
if (term) {
$.post(url, {
s: term
}, function(data) {
var content = $(data).find('.hentry');
if (content.length !== 0) {
$("#autocomplete").fadeIn().empty().append(content);
} else {
$("#autocomplete").hide();
}
});
} else {
$("#autocomplete").fadeOut();
}
}, 300));
はい、可能ですが、2つの質問です。Microsoftによって発明された元のajaxオブジェクトでは、同時に複数のリクエストを行うことはできません。これを可能にするスクリプトはたくさんありますが、あなたは幸運な人であり、jQueryはすでに1つに恵まれています。もう1つの質問は、オートコンプリート関数についてです。これは、トライデータ構造で解決できます。大きな辞書を保存するのに効率的です。