Создать страницу навигации с помощью PHP - PullRequest
0 голосов
/ 30 января 2012

У меня возникли некоторые проблемы при попытке создания навигации по страницам с помощью php,

У меня есть переменная с именем $ PageNo, по которой я могу перемещаться по следующим ссылкам назад -1 или + 1.

например.

echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=".($PageNo+1)."'>Next</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=".($PageNo-1)."'>Prev</a>";

но так же, как и это, я хочу отображать прямые ссылки на страницы, чтобы у меня была такая навигация

PREV 1 2 3 4 NEXT

echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=".($PageNo+1)."'>Next</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=1'>1</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=2'>2</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=3'>3</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=4'>4</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=".($PageNo-1)."'>Prev</a>";

Если бы я знал, что общее количество страниц продукта равно 4, как бы вы сгенерировали ссылки, чтобы дать

echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=1'>1</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=2'>2</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=3'>3</a>";
echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=4'>4</a>";

Любая помощь будет отличной.

Ответы [ 3 ]

2 голосов
/ 30 января 2012

Как насчет попробовать это?

// $total_num : total number of the pages
foreach (range(1, $total_num) as $p) {
    echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=$p"'>$p</a>";
}
1 голос
/ 30 января 2012

Это простой для цикла , и это очень простой материал, который есть во всех языках программирования (например, операторы if / else и циклы while среди других).

Скажем, общее количество страниц равно 4, затем вы устанавливаете случайную переменную, скажем, $ p (для страниц) в начальное значение 1, затем продолжаете цикл, увеличивая $ p на 1 каждый раз, пока $ p не станет 4 . Приведет к этому:

// Previous link before the numbers (unless we are on page 1)
if($PageNo > 1) {
    echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=".($PageNo-1)."'>Prev</a>";
}

// We loop over all the numbered pages here
for($p = 1;$p <= 4;$p++) {
    echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=" . $p . "'>" . $p . "</a>";
}

// Next link goes after the numbers (if there are any pages left)
if(($PageNo + 1) <= $p) {
    echo "<a href='http://".$_SERVER["HTTP_HOST"]."/product.php?page=".($PageNo+1)."'>Next</a>";
}
1 голос
/ 30 января 2012

Вам нужно сделать математику, а затем немного кода.

  1. вычислить количество нужных вам страниц (на основе количества записей и записей на странице)

  2. Просто используйте цикл for для создания ссылок вроде (не проверено):

    для ($ page = 1; $ page <= $ total_pg; ++ $ page){echo "$ page";} </p>

затем страница product.php считывает это число и отображает подмножество записей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...