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

标签 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

进入这个:

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

当没有检查的产品但提交表单时,它将更改 URL:

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

进入这个:

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

即将 0 添加到product-sku 查询字符串变量中。

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

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

    //change the GET URL parameters


 });

});

但我对剩下的过程感到困惑。我希望在提交表单时发生这种情况。如果有人可以提供一些示例代码来开始,我会很高兴。非常感谢。

最佳答案

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

我假设您想要修改 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 可以在没有 [] 语法的情况下做到这一点,所以我很高兴确保您没有使用这些。)

关于用于更改 GET URL 参数的 Jquery 或 JS 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795835/

相关文章:

javascript - jquery 将 html 拆分为几个 .append

java - JSP + JQuery UI 选择菜单 + 默认文本

facebook - FQL 多查询与 HTTP GET - 在 Graph API 资源管理器中工作但在其他任何地方都不工作?

javascript - 使用基于路由器参数的 Vue http 获取数据

jquery - 删除某个按钮后 div 内没有元素的文本

javascript - 我如何告诉 jQuery 忽略空的服务器响应?

javascript - Bootstrap 将 nav 和 nav-pills 添加到我的下拉列表中

java - 如何在构建 GET 请求时限制允许的参数和值?

php - $_GET 未传递给 SELECT 查询

php - 使用 cURL 的 session