データを分離し、ページネーションを使用してテーブルを動的に作成するための正しいロジックとアプローチを考えるのに苦労しています。ファイルサーバーを読み取り、画像のリストをコンパイルして、次のような配列に並べ替える関数があります。
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 の Answer に基づいているため、よくわかりません。