簡體   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