将$ _GET变量传递给下一页

时间:2014-02-13 18:36:48

标签: php pagination

现在我正在尝试编写读取其他代码的代码并使其工作,因为我拥有的一些项目是由其他开发人员制作的,我真的必须学习阅读其他代码,我已经做了一个工作,但问题是当我尝试将这个分页代码合并到$ _GET变量时会发生错误,当它加载第一页时,一切都很顺利但是当我点击其他页面时,$ _GET变量就会消失。我已经在网站上找到了一个代码,但是我无法真正了解如何将其与其他代码合并。

这是“可能”解决问题solving pagination $_GET

的代码
printf('<a href="%s?%s">Next</a>',$targetpage,http_build_query(array('page' => 2) + $_GET));

这是使链接1 2 3 4的代码部分。 。等等

$range = 3;

// if not on page 1, don't show back links
if ($currentpage > 1) {
   // show << link to go back to page 1
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1?srId=$srdd'><<</a> ";
   // get previous page num
   $prevpage = $currentpage - 1;
   // show < link to go back to 1 page
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage?srId=$srdd'><</a> ";
} // end if 

// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
   // if it's a valid page number...
   if (($x > 0) && ($x <= $totalpages)) {
      // if we're on current page...
      if ($x == $currentpage) {
         // 'highlight' it but don't make a link
         echo " [<b>$x</b>] ";
      // if not current page...
      } else {
         // make it a link
         echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x?srId=$srdd'>$x</a> ";
      } // end else
   } // end if 
} // end for

// if not on last page, show forward and last page links        
if ($currentpage != $totalpages) {
   // get next page
   $nextpage = $currentpage + 1;
    // echo forward link for next page 
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage?srId=$srdd'>></a> ";
   // echo forward link for lastpage
   //echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages?srId=$srdd'>>></a> ";

   printf("<a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages?srId=$srdd'>>></a>");
} // end if
/****** end build pagination links ******/
?>

3 个答案:

答案 0 :(得分:0)

您需要使用会话变量或Cookie将它们一页传递给另一页。

对于每个新页面,$ _GET全局数组都是一个新数组,假设您正在发送GET请求,并且可以在URL中看到它。

一般来说,网络是无状态的,这意味着它不会记住你从一个页面到另一个页面的操作,除非你使用cookie,会话或数据库来保持持久性。

设计链接

Page 1 | 2 | 3 | 4 

获取链接中的信息,以便为下一页做好准备

Page 1 = http://url?page=1&page_limit=25 
Page 2 = http://url?page=2&page_limit=25 
...
Etc

如果分页链接采用这种格式,则这些变量将位于$ _GET数组中。

答案 1 :(得分:0)

我已经想到了我在网上看到很多这个问题的人,还有论坛上的一些人如何解决这个问题

    <?php
    session_start();
    // store session data
    if (isset($_GET["srId"]))
    {   
        $_SESSION['variable']=$_GET["srId"];
        $srdd = $_SESSION['variable'];
    }
else
{
    $srdd = $_SESSION['variable'];
    $tableName = $srdd."r"; 
}   
    ?>

感谢您的回复。

答案 2 :(得分:0)

尝试替换

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1?srId=$srdd'><<</a> ";

echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1&srId=$srdd'><<</a> ";

在网址中的初始'?'之后,以下*'$ _ GET []'*项目应与前一个项目分开,并带有'&amp;'。请注意,您的'srId = $ srdd'前面有'?'

示例:

myurl.com?id=1234&page=help

这样做可以帮助您避免将信息存储在$ _SESSION数组中,并保证URL的安全。