PHP分页400+;图片

PHP分页400+;图片,php,Php,a有一个目录中有400多张图片的网站。我想在每一页12点前列出它们。我该怎么做?这是我的实际代码: <!doctype html> <html lang="hu"> <head> <title>Amatőr</title> <meta charset="utf-8"/> </head> <body> <h2><

a有一个目录中有400多张图片的网站。我想在每一页12点前列出它们。我该怎么做?这是我的实际代码:

 <!doctype html>
<html lang="hu">
    <head>
        <title>Amatőr</title>
        <meta charset="utf-8"/>
    </head>
    <body>
        <h2><a href="../php/upload_picture.php" style="font-size:15pt; color:#ff00e8; text-decoration: none;">Vannak jó képeid? Töltsd fel őket és kikerülhetnek az oldalra!</a></h2>
        <article>
            <header>
                Amatőr Lányok
            </header>
            <div id="kepek">
                <?php
                $imgdir = '../img/blog/img/amator/'; //Pick your folder
                $allowed_types = array('png','jpg','jpeg','gif'); //Allowed types of files
                $dimg = opendir($imgdir);//Open directory
                while($imgfile = readdir($dimg))
                {
                  if( in_array(strtolower(substr($imgfile,-3)),$allowed_types) OR
                      in_array(strtolower(substr($imgfile,-4)),$allowed_types) )
                /*If the file is an image add it to the array*/
                  {$a_img[] = $imgfile;}
                }


                 $totimg = count($a_img);  //The total count of all the images
                //Echo out the images and their paths incased in an li.
                 for($x=0; $x < $totimg; $x++){ echo "<a onclick='Lightbox.start(this, false, false, false, false); return false;' rel='lightbox[amator]' href='" . $imgdir . $a_img[$x] . "'><img class='kep_listaz' width='200px' height='160px' src='" . $imgdir . $a_img[$x] . "' /></a>";}
                ?>
            </div>
        </article>
    </body>
</html>

Thanks!

阿马特尔
";}
?>
谢谢

所以这其实更多的是一道数学题。 您需要获得图像的总计数,然后将其除以每页的最大图像数(请确保)

您现在有了查看所有这些图像所需的最大页数。您现在需要做的是确定您是希望page=1/page=2等还是作为开始和结束。但是,对于您需要的页面,两者都相对容易

$page = (int)$_GET['page'];
$start = $page * $max_items_per_page;
$end = $start + $max_items_per_page;
这样做可能会节省开支。还可以添加额外的代码以确保您不会超出请求页面的范围

现在的问题是获取一个文件数组(我建议您使用)并从头到尾使用它


最后,只需上一页/下一页,或列出全部(或部分)获取下一页和上一页非常简单,只需将1添加/删除到
$page
,即
$next=$page+1;
$prev=$page-1;
。同样,对于这两种情况,请仔细检查是否超出范围。如果超出范围,可能最好不要显示下一页/上一页。

有两种分页方法数据类型:在前端,您可以发送所有数据,JavaSctipt一次只向用户显示一部分,或者在后端,页面一次只呈现一部分,您可以重新加载整个页面以获取更多数据

使其工作的最快方法是使用后端方法:

在for循环之前添加
$page=isset($\u GET['page'])?$\u GET['page']-1:0;

将循环的参数更改为
$x=$page*12;$x<$totimg&&$x<($page+1)*12;$x++

然后,您可以通过向url添加
?page=3
来操作页面


如果提交了无效的页码,您还需要添加一些错误处理。

非常感谢,问题是,此页面通过ajax传递给浏览器,因此url实际上不会更改。如何以这种方式添加?page=x?没有理由不能更改ajax调用的url,或者如果ajax调用失败,您可以将参数作为数据发送这是一篇文章。这是我当前的ajax调用:…我做得对吗?我在url的末尾添加了?page=1。还有,我如何在图像下面的ajax内容上添加页面导航?谢谢!我想如果你使用jQuery或其他提供简单语法并保证跨浏览器兼容性的库,你会发现ajax更容易年龄链接,只需使用for循环,如
for($page=1;($page-1)*12<$totimg;$page++){echo'}
非常感谢!页面工作正常,显示正确,唯一的问题是,当我单击另一个页面时,它会将我带回非ajax页面。让我解释一下:我有blog.php,其中我有3个类别。每个类别都会通过ajax显示另一个类别选择(例如:图像),然后当你选择下一个职业时(这里是‘amator’)它在ajax中再次出现。因此,当我单击页码时,它会将我带回blog.php,而不加载任何ajax。