3

我经常发现自己对简单的事情感到惊讶,我不确定,但我相信这可能是其中之一。

我经常发现自己需要合并获取属性,尤其是在过滤器和站点内的搜索页面中。这有时会非常复杂,因为您可能想要动态删除和添加参数。

简单的方法是使用表单,但是当添加不属于表单的元素时,这会变得复杂。例如分页

例如,我可能有一个如下 URL

http://www.example.org/ninja_search/?speed__gt=5&night_sight=1&page=1

如何将此类 URL 与 page=2 合并,用新值替换 1?javascript是唯一的选择吗?

?speed__gt=5&night_sight=1& page=1 + page=2 = ?speed__gt=5&night_sight=1& page=2

谢谢 :)

4

1 回答 1

3

解决方案是使用[]从参数显式创建数组,前提是您的服务器端语言支持它:

?speed__gt=5&night_sight=1 &page[]=1&page[]=2

例如,如果您的服务器端语言是 PHP,$_GET['page']现在将返回一个数组,其中 1 作为第一个元素,2 作为第二个元素。

您也可以在表单中使用此技术,方法是将其应用于name属性:

<form id="myform">
  <input type="hidden" name="page[]" value="1" />
  <input type="hidden" name="page[]" value="2" />
</form>

如果您正在谈论添加第二个参数并忽略第一个参数,无论如何都会发生这种情况 - 第二个提供的参数将覆盖第一个参数。假设

?speed__gt=5&night_sight=1&page=1&page=2

服务器上的值page将是 2,因为给定的最后一个值优先。

于 2010-07-22T10:06:41.507 回答