如何使用带有php的表单将GET变量添加到当前页面url的末尾?

时间:2010-06-18 10:29:45

标签: php forms get pagination

我在页面上显示了一些数据库信息。

我正在使用在网址中使用$_GET['page']变量的分页类。当您点击其他分页锚标记时,它会将$_GET['page']更改为网址中的新数字,并显示相应的结果。

我有使用$_GET['searchby']$_GET['search_input']变量的排序和搜索功能。用户在使用GET的表单上输入搜索条件。然后将变量放入url中,以便显示正确的结果。

我遇到的问题是,每当我点击分页链接时,它会将$_GET['page']变量添加到网址的末尾并删除$_GET['searchby']$_GET['search_input']。当我提交搜索表单时,会添加$_GET['searchby']$_GET['search_input'],但会删除$_GET['page']

如何使用锚标记和搜索/排序形式将GET变量添加到当前页面url的末尾,而不删除任何现有的GET变量,但如果它们是相同的GET变量名,则覆盖它们?

2 个答案:

答案 0 :(得分:6)

试试这个:

if (strpos($_SERVER['REQUEST_URI'], '?') !== false)
{
  $url = $_SERVER['REQUEST_URI'] . '&var=value';
}
else
{
  $url = $_SERVER['REQUEST_URI'] . '?var=value';
}

<a href="<php echo $url;>">Go</a>

请注意,$_SERVER['REQUEST_URI']会为您提供包含查询字符串值的当前网址。

答案 1 :(得分:1)

$query_string = http_build_query(array_merge($_GET, array('page' => $page)));