2

我有一个带有复选框的页面,因此当它被选中时,它将通过 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

进入这个:

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

并且当没有选中的产品但提交了表单时,它会将 URL 更改为:

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

进入这个:

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

即向 product-skus 查询字符串变量添加 0。

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

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

    //change the GET URL parameters


 });

});

但我坚持剩下的过程。我希望在提交表单时发生这种情况。如果有人可以提供一些示例代码来入门,我会很高兴。太感谢了。

4

1 回答 1

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 可以在没有 [] 语法的情况下做到这一点,所以我很确定你不使用那些。)

于 2012-12-10T06:14:00.327 回答