现在我正在尝试编写读取其他代码的代码并使其工作,因为我拥有的一些项目是由其他开发人员制作的,我真的必须学习阅读其他代码,我已经做了一个工作,但问题是当我尝试将这个分页代码合并到$ _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 ******/
?>
答案 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的安全。