如果我在英语方面犯了一些错误,请原谅,因为英语不是我的母语。切中要害。这是我的分页代码:
if (!isset($_GET["page"])) $_GET["page"] = 1;
if (sizeof($dirs) + sizeof($files) > $thumbs_pr_page)
{
$page_navigation .= "$label_page ";
for ($i=1; $i <= ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page); $i++)
{
if ($_GET["page"] == $i)
$page_navigation .= "$i";
else
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i) . "'>" . $i . "</a>";
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i-1) . "'> Previous </a>";
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i+1) . "'> Next </a>";
if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page)) $page_navigation .= " | ";
}
}
你知道问题出在哪里吗?下一个/上一个按钮被禁用。但它应该只在左边,应该在前面,然后在右边。我现在只学习php,这对我来说很难。在这里你可以看到它的样子:http://tinypic.com/view.php?pic=2djl3m&s=5,应该是这样的:http://tinypic.com/view.php?pic=2eeli54&s=5
您需要将下一个和上一个按钮移出for循环。上一页在前面,下一页在后面。下一页和上一页不需要依赖$i——它们应该只依赖于当前加载的页面。
if (!isset($_GET["page"])) $_GET["page"] = 1;
if (sizeof($dirs) + sizeof($files) > $thumbs_pr_page)
{
$page_navigation .= "$label_page ";
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($_GET["page"]-1) . "'> Previous </a>";
for ($i=1; $i <= ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page); $i++)
{
if ($_GET["page"] == $i)
$page_navigation .= "$i";
else
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i) . "'>" . $i . "</a>";
if ($i != ceil((sizeof($files) + sizeof($dirs)) / $thumbs_pr_page)) $page_navigation .= " | ";
}
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($_GET["page"]+1) . "'> Next </a>";
}
但您也应该"捕获"0
和n+1
页面(然后不需要上一个/下一个按钮)
问题在for循环中。您正在检查$_GET['page'] == $i
,如果不是,则连接到$page_navigation
的链接
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i) . "'>" . $i . "</a>";
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i-1) . "'> Previous </a>";
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i+1) . "'> Next </a>";
这将为$_GET['page'] == $i
不为真的每个迭代生成下一个/上一个链接(除了一次)。由于您只需要它们一次(相对于当前$_GET['page']
),因此需要将它们移出循环。
首先,请尝试将括号放在else
之后,因为else
中的最后两个语句将不是else
子句的一部分,这将导致Previous和Next成为for(;;;)
的一部分而不是else
,这可能会导致它重复Previous和Next。
if ($_GET["page"] == $i)
$page_navigation .= "$i";
else{
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i) . "'>" . $i . "</a>";
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i-1) . "'> Previous </a>";
$page_navigation .= "<a href='?dir=" . $_GET["dir"] . "&page=" . ($i+1) . "'> Next </a>";
}