2012-12-10 29 views
2

我有一個網頁一個複選框,以便其選中時,它會通過GET提交值和參數,這是它的樣子默認:jQuery的或JS代碼更改GET URL參數

傳遞了兩個產品SKU

http://example.com/product-comparisons/?product-skus=1&product-skus=2 

傳遞只有一個產品SKU:

http://example.com/product-comparisons/?product-skus=1 

或這樣的:

http://example.com/product-comparisons/?product-skus=2 

我想做到的是通過兩個或兩個以上的產品,因爲這時候只改變GET參數:

http://example.com/product-comparisons/?product-skus=1&product-skus=2 

這個:

http://example.com/product-comparisons/?product-skus=1,2 

如果沒有檢查過的產品,但表單已提交,則會更改URL:

http://example.com/product-comparisons/ 

到此:

http://example.com/product-comparisons/?product-skus=0 

是將0加至產品的SKU查詢字符串變量。

我已經有一個jQuery代碼將運行點擊提交按鈕時:

jQuery(document).ready(function($) { 
$('#myform').submit(function() { 

    //change the GET URL parameters 


}); 

});

但是我堅持了其餘的過程。我希望在提交表單時發生這種情況。如果有人能提供一些示例代碼來開始,我會很高興。非常感謝。

回答

1

我打算提供一個建議,不直接回答你的問題,但這可能會解決你的問題,並可能爲你節省很多工作和頭痛的過程。

我假設你想修改GET參數,因爲你的服務器端應用程序只有在接收到多個值時才接收其中的一個值,並且你想分隔逗號分隔的參數來解決你的問題。

有一個更容易的選擇。

將您的複選框name屬性更改爲product_skus[],並且當您在服務器端應用程序中讀取它時,它將作爲數組進行檢索。

例如:

http://example.com/product-comparisons/?product-skus[]=1&product-skus[]=2 

如果你在PHP閱讀本:

print_r($_GET['product_skus']);` 

會給你:

Array(0 => '1', 1 => '2') 

希望幫助你! (PS - 你也可以用Python等其他服務器端語言來做到這一點,並且我相信大多數其他現代語言,Java和.NET可以不用[]語法來實現,所以我是相當肯定你不使用這些。)

+0

謝謝TheSmose,它完美的作品! –