用于更改GET URL参数的Jquery或JS代码

时间:2012-12-10 06:04:17

标签: jquery get

我有一个带复选框的页面,这样当它被选中时,它会通过GET提交值和参数,这是默认情况下的样子:

传递两个产品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

INTO THIS:

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

如果没有经过检查的产品但提交了表单,则会更改以下网址:

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

INTO THIS:

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

将0添加到product-skus查询字符串变量。

我已经有了一个jQuery代码,它会在点击提交按钮时运行:

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

    //change the GET URL parameters


 });

});

但我仍然坚持其余的过程。我希望在提交表单时发生这种情况。如果有人可以提供一些示例代码来开始,我会很高兴。非常感谢你。

1 个答案:

答案 0 :(得分:1)

我将提供一个不直接回答你的问题的建议,但这可能会解决你的问题,并可能在这个过程中为你节省大量的工作和头痛。

我假设您要修改GET参数,因为您的服务器端应用程序仅在传递许多值时接收其中一个值,并且您希望拆分以逗号分隔的参数来解决您的问题。

有一个更容易的选择。

将您的复选框name属性更改为product_skus[],当您在服务器端应用上阅读时,它将作为数组进行检索。

e.g:

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可以做到这一点,所以我很漂亮确定你没有使用它们。)