我有一个带复选框的页面,这样当它被选中时,它会通过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
});
});
但我仍然坚持其余的过程。我希望在提交表单时发生这种情况。如果有人可以提供一些示例代码来开始,我会很高兴。非常感谢你。
答案 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可以做到这一点,所以我很漂亮确定你没有使用它们。)