繁体   English   中英

如何在PHP的URL中为分页传递正确的变量?

[英]How can I pass the correct variables in a URL in PHP for my paging?

我正在用PHP分页

  • 我需要它在任何文件夹上工作,因此root / root / folder1 / root / folder1 / folder2 /都可以工作
  • 它应该传递页面编号变量,以使脚本可以在URL中工作,但还应保留URL中可能存在的任何其他变量,以及在URL中传递的任何数量的变量。

这是我到目前为止基于@的链接的内容

http://domain.com/test/paging/index.php?var=cool&var2=coo2l&page=1


$selfurl = "http://".$_SERVER['SERVER_NAME'].dirname($_SERVER['PHP_SELF'])."";

这将创建以下内容: http : //domain.com/test/paging/


$qry_str = $_SERVER['argv'][0];

这将创建以下内容: var = cool&var2 = coo2l&page = 1


到目前为止,它很好,无论目录系统有多深,并且传递页面URL中可能存在的ANY和ALL变量,它都可以工作(注意;我知道它假定它始终是索引文件,稍后我将对其进行修复)

因此,下面所有这些链接都将通过我的分页链接传递;

http://domain.com/test/paging/?page=1
http://domain.com/test/paging/?var=coo2l&page=1 http://domain.com/test/paging/?var=cool&var2=coo2l&page=1

这是问题,下面是
我的下一个和上一个链接的示例,它有效
但问题是我去了
第一页,它将继续添加

&page = THE-NUMBER-HERE,所以当您进入第3页时

就像

&页= THE-NUMBER-HERE&页= THE-NUMBER-HERE&页= THE-NUMBER-该处

代替

&页= THE-NUMBER-该处

链接;

 <a href="<?PHP echo $selfurl;?>/?<?PHP echo $qry_str;?>&page=<?PHP echo $start-$pagesize;?>" class="bluelinkbold">Next</a> <a href="<?PHP echo $selfurl;?>/?<?PHP echo $qry_str;?>&page=<?PHP echo $start-$pagesize;?>" class="bluelinkbold" >Previous</a> 



如何正确解决此路径?


这很简单:

  1. 不要使用$ _SERVER ['argv'] [0],您可以在每次请求时自行构造URL。
  2. 使用preg_replace从$ _SERVER ['argv'] [0]删除现有的页面变量,然后添加新的:

    $ url_without_page_var = preg_replace函数( '/页=(\\ d +)/ I', '',$ _ SERVER [ '的argv'] [0]);

在id变量后传递页码时,我遇到了类似的问题。
mysite.php?id = 16&page = 1&page = 2&page = 1依此类推...受到Sergei的启发,我使用PHP_SELF删除了现有变量,然后重新加载我的ID并同时获得了新页面。

href="' . $_SERVER['PHP_SELF'] .'?id='. $row['id'] . '&page=' . $pages->next . '">Next

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM