2016-06-28 1 views
0

Я довольно новичок в css, html, php, javascript и т. Д., Но я медленно, но уверенно строю небольшой блог-сайт с помощью stackoverflow. Имейте в виду, что я только кодировал около 5 месяцев.Auto-Pagination или что-то подобное

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

Я хочу «авто-paginate» мои страницы, поэтому пример; если мне нужно 15 сообщений в блоге на странице, на каждой странице, как я могу автоматически делать это с помощью разбивки на страницы, php и т. д. Я знаю, что могу это сделать вручную, но поскольку я добавляю больше сообщений в блогах, это становится довольно утомительным с течением времени, поэтому я искал способ «автоматически сделать это», если есть способ.

Заранее благодарим всех, кто понимает и желает помочь!

+1

Добро пожаловать в SO. Пожалуйста, прочитайте [Какие темы я могу задать] (http://stackoverflow.com/help/on-topic) и [Как задать хороший вопрос] (http://stackoverflow.com/help/how-to -ask) И [идеальный вопрос] (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) И [Как создать минимальный, полный и проверяемый пример] (http://stackoverflow.com/help/mcve) SO ** не является бесплатным кодированием или преобразованием кода или учебным пособием или службой поиска библиотек ** Вы также должны показать, что приложили определенные усилия для решения своей проблемы , – RiggsFolly

+0

Кларк, вы все еще можете прокомментировать или принять ответ на свой вопрос (даже если он находится в режиме ожидания). –

ответ

0

Вы можете сделать пагинацию с $_SESSION, это то, что вам нужно:

  • сами (или их идентификаторы) сообщений.
  • Сколько сообщений для отображения на странице.
  • Какова текущая должность на экране.

Например, если у вас есть 100 сообщений (от 0 до 99), вы хотите отобразить 10 сообщений на странице, а текущее сообщение - 60, тогда вам нужно будет отображать сообщения от 60 до 69. Эти три жизненно важные элементы данных могут быть сохранены в $_SESSION переменных:

  • $_SESSION[ "posts" ].
  • $_SESSION[ "per_page" ].
  • $_SESSION[ "current" ].

Вы должны использовать $_SESSION, поскольку данные $_SESSION сохраняются после обновления страницы.

Следующий пример без базы данных, поэтому «сообщения» хранятся в массиве. Для того, чтобы проверить его, скопируйте и вставьте следующий код в файл, сохранить файл как .php и откройте его в браузере:

<?php 
session_start(); // NECESSARY TO USE $_SESSION. 

// SAMPLE DATA. 
$_SESSION[ "posts" ] = array("aaa","bbb","ccc","ddd","eee","fff","ggg", 
           "hhh","iii","jjj","kkk","lll","mmm","nnn"); 
$_SESSION[ "per_page" ] = 4; // PAGES PER PAGE. 
if (! isset($_SESSION[ "current" ])) // IF THIS IS THE FIRST PAGE 
    $_SESSION[ "current" ] = 0; // CURRENT BLOG. 

if (isset($_POST[ "submit" ])) // IF "PREVIOUS" OR "NEXT" WERE PRESSED 
    { if (($_POST[ "submit" ] == "Previous page") && 
      (($_SESSION[ "current" ] - $_SESSION[ "per_page" ]) >= 0)) 
      $_SESSION[ "current" ] -= $_SESSION[ "per_page" ]; 
    if (($_POST[ "submit" ] == "Next page") && 
      (($_SESSION[ "current" ] + $_SESSION[ "per_page" ]) < 
      count($_SESSION[ "posts" ]))) 
      $_SESSION[ "current" ] += $_SESSION[ "per_page" ]; 
    } 
?> 
<html> 
    <body> 
    Showing posts : 
    <br/> 
<?php 
// DISPLAY ONE PAGE OF POSTS (FROM CURRENT TO CURRENT + PER_PAGE - 1). 
for ($i = $_SESSION[ "current" ]; 
     $i < ($_SESSION[ "current" ] + $_SESSION[ "per_page" ]); $i++) 
    if (isset ($_SESSION[ "posts" ][ $i ])) // IN CASE LAST PAGE IS ODD 
    echo $_SESSION[ "posts" ][ $i ] . "<br/>"; 
?> 
    <br/> 
    <form method="post"> 
     <input type="submit" name="submit" value="Previous page"/> 
     <input type="submit" name="submit" value="Next page"/> 
    </form> 
    </body> 
</html> 

Чтобы сделать эту работу с вашим уже сделали блог-сайт, получить идентификаторы ваши сообщения и хранить их в массиве, а в разделе HTML используйте эти идентификаторы для получения данных сообщений из базы данных и отображения их на экране.

+1

Я пока не совсем понимаю, но спасибо, что нашли время, чтобы ответить и объяснить, и спасибо, что указали мне в правильном направлении! Я проведу код и сделаю еще несколько исследований. Однажды, снова я довольно новичок в кодировании, поэтому спасибо за опору со мной! –

+0

@ A.Clarke, если у вас все еще есть проблемы, просто отправляйте новый вопрос в любое время. –

+0

Хорошо, я сделал именно то, что было сказано, теперь у меня есть еще пара вопросов Ques 1) Когда вы говорите «идентификаторы моих сообщений», вы имеете в виду названия справа? Например, если название было названо «мой первый пост в блоге», это будет идентификатор сообщения? Ques 2) Также я вижу предыдущие и следующие кнопки, но что, если бы я хотел [prev] [1] [2] [3] [4] ... [204] [next], если бы мне хотелось, чтобы кнопки отображались как как я это сделаю? Ques 3) И последний вопрос, я все еще могу использовать CSS, чтобы сделать разбивку на страницы так, как я хочу, чтобы это было правильно? –

Смежные вопросы