Кнопки PHP Next & Back вместо пагинации - PullRequest
0 голосов
/ 23 октября 2011

Я хотел бы изменить приведенный ниже скрипт, чтобы не было нумерации страниц, только кнопки «Предыдущая» и «Следующая». Я хотел бы, чтобы предыдущие / следующие ссылки отображались / были недоступны в зависимости от того, существует ли следующая / предыдущая страница Например, если вы находитесь на странице 1, предыдущая кнопка не будет отображаться, поскольку страница 0 не существует.

Сценарий, который я сейчас использую, извлекает данные из текстового файла - создает динамические страницы - и создает пагинацию на основе этого:

(до запуска html)

$data=file("brief.txt");
$pages=0;
foreach($data as $temp){
    $x=explode("|",$temp);
    if($x[0]>0){
        $pages=$pages+1;
    }
}
if($_GET['p']){
    $page=$_GET['p'];
}
if($_GET['i']){
    $index=$_GET['i'];
}

if($index == "p"){
    $page=$page-1;
}
if($index == "n"){
    $page=$page+1;
}
if($page < 1){
    $page=1;
}
if($page > $pages){
    $page=$pages;
} 
$line=$data[$page-1];
$fields=explode("|",$line);
?>

(в корпусе)

 <?php
 $show=6;
 echo "<li><a href='?i=p&p=$page'>&#171; PREV</li></a>";

if($page-($show/2) > 1){
    $temp=$page-$show;
    echo "<li><a href='?p=$temp'>...</li></a>";
}
if($page-($show/2) >= 1 && $page+($show/2) <= $pages){
    $start=$page-($show/2);
    $stop=$page+($show/2);
}
if($page-($show/2) < 1){
    $start=1;
    $stop=$show;
}
if($page+($show/2) > $pages){
    $start=$pages-$show;
    $stop=$pages;
}  
for($i=$start; $i<=$stop; $i++){
    if($page==$i){
        echo "<li class='active'>$i</li></a>";
    }
    else{
        echo "<li><a href='?p=$i'>$i</li></a>";
    }
}
if($page+($show/2) < $pages){
    $temp=$page+$show;
    echo "<li><a href='?p=$temp'>...</li></a>";
}
echo "<li><a href='?i=n&p=$page'>NEXT &#187;</li></a>";
?>

Я получил только следующую и предыдущую кнопки, чтобы показать и работать, просто изменив скрипт на:

<?php
echo "<li><a href='?i=p&p=$page'>&#171; PREV</li></a>";
echo "<li><a href='?i=n&p=$page'>NEXT &#187;</li></a>";
?>

Но я не знаю, куда идти оттуда. Любая помощь будет потрясающей! :)

1 Ответ

2 голосов
/ 23 октября 2011

С одной стороны, вложение тегов неверно - должно предшествовать .Во-вторых, код не очень элегантный - он может быть намного короче.

Но чтобы ответить на ваш вопрос об отключении ссылок, вы можете просто использовать

<?php
if($page == 1) echo "<li>echo &#171; PREV</li>" else echo "<li><a href='?i=p&p=$page'>&#171; PREV</a></li>";
if($page == $pages) echo "<li>echo NEXT &#187;" else echo "<li><a href='?i=n&p=$page'>NEXT &#187;</a></li>";
?>

(общее количество страниц можно найти в $ страниц).

...