Я пытаюсь найти код для разбивки длинного поста через Ajax и Php, например
Мой пост содержит более 2000 слов, я хотел бы разбить страницу на несколько страниц с помощью следующего& предыдущие ссылки с каждой страницей, содержащей 500 слов. Всего должно быть отображено 4 ссылки.
До сих пор я получил плагины, которые разбивают записи базы данных на страницы.
Любые выводы будут высоко оценены.
Если вы хотите проверить, сколько символов в статье, вы можете использовать PHP strlen()
функция. Тогда, если оно больше 500, вы можете установить новую ссылку с $_GET
… Я не знаю, что у вас есть база данных, но я рекомендую сохранить статью в базе данных MySQL.
Код:
// This first query is just to get the total count of rows
$sql = "SELECT COUNT(id) FROM articles WHERE account_name=?"; // or you can use an strlen function here
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$u);
$stmt->execute();
$stmt->bind_result($rows);
$stmt->fetch();
$stmt->close();
// Here we have the total row count
// This is the number of results we want displayed per page
$page_rows = 10;
// This tells us the page number of our last page
$last = ceil($rows/$page_rows);
// This makes sure $last cannot be less than 1
if($last < 1){
$last = 1;
}
// Establish the $pagenum variable
$pagenum = 1;
// Get pagenum from URL vars if it is present, else it is = 1
if(isset($_GET['pn'])){
$pagenum = preg_replace('#[^0-9]#', '', $_GET['pn']);
}
// This makes sure the page number isn't below 1, or more than our $last page
if ($pagenum < 1) {
$pagenum = 1;
} else if ($pagenum > $last) {
$pagenum = $last;
}
// This sets the range of rows to query for the chosen $pagenum
$limit = 'LIMIT ' .($pagenum - 1) * $page_rows .',' .$page_rows;
// Establish the $paginationCtrls variable
$paginationCtrls = '';
// If there is more than 1 page worth of results
if($last != 1){
/* First we check if we are on page one. If we are then we don't need a link to
the previous page or the first page so we do nothing. If we aren't then we
generate links to the first page, and to the previous page. */
if ($pagenum > 1) {
$previous = $pagenum - 1;
$paginationCtrls .= '<a href="user.php?u='.$u.'&pn='.$previous.'#posts">Previous</a> '; // here we set up the link
// Render clickable number links that should appear on the left of the target page number
for($i = $pagenum-4; $i < $pagenum; $i++){
if($i > 0){
$paginationCtrls .= '<a href="user.php?u='.$u.'&pn='.$i.'#posts">'.$i.'</a> ';
}
}
}
// Render the target page number, but without it being a link
$paginationCtrls .= ''.$pagenum.' ';
// Render clickable number links that should appear on the right of the target page number
for($i = $pagenum+1; $i <= $last; $i++){
$paginationCtrls .= '<a href="user.php?u='.$u.'&pn='.$i.'#posts">'.$i.'</a> ';
if($i >= $pagenum+4){
break;
}
}
// This does the same as above, only checking if we are on the last page, and then generating the "Next"if ($pagenum != $last) {
$next = $pagenum + 1;
$paginationCtrls .= ' <a href="user.php?u='.$u.'&pn='.$next.'#posts">Next</a> ';
}
}
Так как я не знаю, что вы хотите именно посмотреть это видео: пагинация
Других решений пока нет …