我非常感谢对此的帮助。我有一个页面,使用 laravel 分页显示商店中的产品。我在页面上有基于品牌、类别和可用产品的过滤器。为了过滤产品,我使用了一个复选框。如果选中复选框,我将使用 ajax get 请求并通过 URL 将状态发送到 Controller 以过滤可用产品。
status =
1 表示可用产品,status = 0
表示所有产品。Url 如下所示:
/Collections/Newest_Items?status=1&page=2
情况是这样的。我想知道是否可以更改 URL 中的变量值并根据页码和新过滤器动态重新生成 URL?这是一种使用 jquery 获取页面 URL 并更改值,然后使用 window.history.pushState("", "", URL);
更改 Url 的方法吗?
这是我的 ajax:
$(document).on('click', "#only_available", function () {
if ($('#only_available').is(':checked')) {
var status = 1;
url = '/Collections/Newest_Items?status='+status;
} else {
var status = 0;
url = '/Collections/Newest_Items';
}
window.history.pushState("", "", url);
$.ajax({
url: '/Collections/Newest_Items',
type: "GET",
data: {status: status},
cash: false,
success:
function (response) {
$('#products-load').html(response);
}
});
});
});
我通过自己编写 URL 来做到这一点。在这种情况下,我必须在每个过滤器应用于页面之后写入 URL。这样我无法获取用户当前所在的页面,它会返回到第一页。但我想在这里实现的是,我想根据用户当前所在的页码动态创建 Url,并应用所有过滤器。
最佳答案
您可以使用window.location.search
,它会在您的示例中提供如下内容:status=1&page=2
。然后您需要解析这些变量以获得您要查找的页码。
关于javascript - 在url中的ajax请求之后捕获并更新变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354536/