jquery
2012-08-09 62 views 1 likes 
1

我目前傳遞變量來查詢字符串使用此選擇下拉菜單和jQuery:使用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通過filter_1變量,filter_1被查詢字符串覆蓋。我現在需要的是追加filter_1filter_2和副-A-反之亦然的方式。有任何想法嗎?

+1

更改queryparam重新加載頁面。您是否也在頁面加載時根據參數設置選擇的值? – 2012-08-09 15:33:26

+0

爲了增加Kevins響應。每次加載您的選擇頁面都會丟失選定的以前的值。您需要通過將選擇傳遞給服務器並在頁面加載時恢復它來處理它。 – anazimok 2012-08-09 15:55:14

回答

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?

+0

這真的很接近!我不得不稍微編輯你的代碼,但是我需要的是99%。謝謝!我不得不添加「&」分隔符來連接兩個變量:'window.location.href ='?filter_1 ='+ $(this).val()+'&'+ querystring('filter_2') ;」 – 2012-08-09 17:40:27

+0

@JacobWadenpfuhl更新。請註冊。謝謝! – iambriansreed 2012-08-09 17:51:22

+0

我將完全給予好評,但它看起來像我沒有足夠的「信譽」呢。 – 2012-08-09 18:00:05

相關問題