我无法思考正确的逻辑和方法来分离我的数据并动态创建带有分页的表。我有一个读取文件服务器的函数,编译图像列表并将它们排序成这样的数组:
imagenames ( [0] => apple.png [1] => banana.png [2] => carrot.png [3] => dill.png )
我使用这个数组来动态创建一个表,代码如下:
echo '<table>';
for ($r=0; $r<$rows; $r++){
echo '<tr>';
for ($c=0; $c<$cols; $c++){
if($index<$imagecount){
echo '<td><img src="images/'.$imagenames[$index].'" ></td>';
$index++;
}
}
echo '</tr>';
}
echo '</table>';
如果我设置$rows=3;
和$cols=3;
,我的桌子将有 9 张图像的空间。如果我的数组有 50 张图像,我将如何对表格进行分页,以便我有一个下一个、上一个和一个编号的菜单,这样整个表格就不必一次全部加载或忽略范围由$rows*$cols
?
*编辑** -------->>>
因此,如果我采用 Steven Liao 建议的方式并拥有以下内容:
$size = $rows*$cols; // number of elements on page
$min = $_GET['p']*$size; // start index in array
$total_pages = ceil(count($imagenames)/$size);
echo '<table class="photobox">';
for ($r=0; $r<$rows; $r++){
echo '<tr>';
for ($c=0; $c<$cols; $c++){
if($index<$imagecount){
echo '<td><img src="images/'.$imagenames[$index].'" /></td>';
$index++;
}
}
echo '</tr>';
}
echo '</table><br/><br/>';
// Previous
$prev_page = max($_GET['p']-1, 0);
echo '<a href="photobox.php?p='.$prev_page.'">Previous</a>';
// Each individual page number (no separators yet)
for($i = 0; $i < $total_pages; $i++){
echo '<a href="photobox.php?p='.$i.'">'.($i+1).'</a>';
}
// Next
$next_page = min($_GET['p']+1,$total_pages-1);
echo '<a href="photobox.php?p='.$next_page.'">Next</a>';
这将显示表格并创建导航链接。我将如何使每个页面的表格内容发生变化。导航在那里,URL 随页面而变化,但表格没有改变,我不太了解这个分页代码,因为它基于 Steven Liao 的回答。