我在PHP网站上有一个搜索结果页面,它使用分页返回结果列表。 URL如下所示:
findProducts.php?action=searchAssets&orderNumber=xxxx&productName=zzz&skip=20
我有一个选择菜单,允许用户修改/过滤搜索结果,触发如下脚本:
$(document).ready(function() {
$('#productType').change(function() {
window.location.href = window.location.href + '&productType=' + $(this).val();
});
});

除了一件事之外,这项工作很有效 - 我需要重置“跳过”#39;新过滤器搜索的参数为0,因为上一次搜索的分页值无效或适用。有没有办法可以改变:
skip=20
为:
skip=0
作为此脚本的一部分?
答案 0 :(得分:1)
您可以在网址上执行RegExp替换:
window.location.href = window.location.href.replace(/((?:\?|&)skip)=\d+/, '$1=0') + '...';
(未测试的)
请注意,您应该对productType执行相同的操作,否则您将反复添加它。
更好的解决方案可能是拥有一个基本URL,然后添加所有必要的参数,而不是进行搜索和替换......
答案 1 :(得分:1)
您可以使用email.Display(False) ;
email.Send()
这将为您提供第一个索引中的基本URL和第二个索引中的查询。
然后,您可以使用?
分割查询来获取查询参数。
如果是&
参数,您可以循环检查所有参数。如果参数是skip参数,则将新值推送到输出数组。否则将未更改的参数推送到输出数组。
然后,您可以使用skip
使用join
加入所有输出元素,以重新构建查询并使用新的查询字符串返回原始基本网址。
&