データテーブル用の高度なフィルターを作成しました。ここで、選択したオプションを URL パラメーターとして追加したいと思います。したがって、オプションが選択されるたびに URL が変更され、ページがリロードされると、URL パラメーターに基づいて選択されたフィルターが開かれます。
ここに私がこれまでに持っているものの例を示します... url パラメーターに関するヘルプをいただければ幸いです。
データテーブル用の高度なフィルターを作成しました。ここで、選択したオプションを URL パラメーターとして追加したいと思います。したがって、オプションが選択されるたびに URL が変更され、ページがリロードされると、URL パラメーターに基づいて選択されたフィルターが開かれます。
ここに私がこれまでに持っているものの例を示します... url パラメーターに関するヘルプをいただければ幸いです。
これを行うには、URL のフラグメントを使用します。そうすれば、ページをリロードせずに JavaScript で URL を変更できます。次に、更新を押すと、そのフラグメントが URL に固定されます。
したがって、ドロップダウン値が変更されるたびに、次のように URL に値を設定します。
window.location.hash = '#somevalue'
次に、ページが読み込まれると:
$(document).ready(function() {
// access hash using window.location.hash and show/hide based on its value
}
関数に url 値を設定します.change()
。これにより、毎回現在の URL ハッシュが置き換えられます。
var urlArgs = $(".filterControl:visible").map(function()
{
return this.id + "=" + $(this).val();
}).get().join("&");
location.href = "#" + urlArgs;
次に、オンロードしてハッシュを解析します。
$(function()
{
$.each(location.hash.replace(/\#/, "").split("&"), function(filterArg)
{
var parts = filterArg.split("=");
$("#" + parts[0]).val(parts[1]);
});
});
ちなみに、このコードでは選択の便宜上、filterControl
on eachのクラスを想定しています。<select>
もちろん、好きな方法で選択できます。