2013-11-02 60 views
0

我有一個使用通過URL提交的不同變量顯示數據的PHP頁面。例如:重新提交時更改一個URL變量

index.php?rownum=30&colnum=2&qlang=en 

我需要給用戶更改排序順序的能力。

爲此,我添加了一個HTML <select>,其中有兩個選項,分別調用我的re_order()函數,該函數基本上應該調用相同的URL,除了新的排序順序外,所有參數都是完整的。

是否有一種簡單的方法來執行該操作,還是應該使用PHP會話查看之前設置的參數?

+0

爲什麼你需要跟蹤先前的排序順序? – Jerska

回答

1

這是一個應由客戶端處理的任務。

你或許可以做這樣的事情:

location.search = location.search.replace(/([&?]sort)(?:=[^&]*)?(?=&|$)/i, '$1=newvalue'); 

你可以把它的可重複使用的功能:

function setUrlParam(searchString, param, value) { 
    var rx = new RegExp('([&?]' + param + ')(?:=[^&]*)?(?=&|$)', 'i'), 
     encodedVal = encodeURIComponent(value); 

    return rx.test(searchString)? 
     searchString.replace(rx, '$1=' + encodedVal) : 
     searchString += '&' + param + '=' + encodedVal; 
} 


location.search = setUrlParam(location.search, 'sort', 'date');