1

私は現在、これを使用して選択ドロップダウンとjQueryでクエリ文字列に変数を渡しています:

$("#filter_1").change(function(e) {
  window.location.href = '?filter_1=' + $(this).val()
});
$("#filter_2").change(function(e) {
  window.location.href = '?filter_2=' + $(this).val()
});

これはうまく機能しています。ただし、変数をfilter_2渡した後で選択すると、クエリ文字列で上書きされます。私が今必要としているのは、andとその逆を追加する方法です。何か案は?filter_1filter_1filter_1filter_2

4

1 に答える 1

0

ここでは、クエリ文字列を解析しkey=value、要求されたキーが存在する場合はそれを返し、存在しない場合は空の文字列を返す関数を作成します。

$("#filter_1").change(function(e) {
   window.location.href = '?filter_1=' + $(this).val() + 
      querystring('filter_2', '&');
});
$("#filter_2").change(function(e) {
   window.location.href = '?filter_2=' + $(this).val() + 
      querystring('filter_1', '&');
});


function querystring(name, prefix)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return '';
  else
    return (prefix||'')+name+'='+ decodeURIComponent(results[1].replace(/\+/g, " "));
}

関数の由来: How can I get query string values in JavaScript?

于 2012-08-09T15:39:15.823 に答える