add paginator

This commit is contained in:
Aleksandr Shelkovin 2025-01-27 22:18:33 +03:00
parent 2383f9d4f6
commit 7ec20a6d35
2 changed files with 154 additions and 0 deletions

101
AXIOS/page.php Normal file
View File

@ -0,0 +1,101 @@
<?php
define('LIMIT', 5);
define('OFFSET', 0);
$arrMusic = [
'Открываем',
'набор',
'на',
'оплачиваемую',
'стажировку',
'Вы',
'спрашивали',
'вы',
'ждали',
'и',
'вот',
'мы',
'возвращаемся',
'с',
'анонсом',
'стажировки',
'для',
'разработчиков!',
'6 месяцев',
];
$len = sizeof($arrMusic);
// $limit = $_GET['limit'] or LIMIT;
$limit = isset($_GET['limit']) ? $_GET['limit'] : LIMIT;
// $offset = $_GET['offset'] or OFFSET;
$offset = isset($_GET['offset']) ? $_GET['offset'] : OFFSET;
$portial = array_slice($arrMusic, $offset, $limit);
// print($len);
$str = '<ul id="feed">';
foreach ($portial as $value) {
$str .="<li>$value</li>";
}
$str .= '';
$countPage = intdiv($len , $limit);
// var_dump($countPage);
$paginator = '';
for ($i = 0; $i < $countPage; $i++) {
$paginator .= '<a href= "./portial.php?offset='.LIMIT*$i.'&limit='.LIMIT.'">'.$i.'</a>&nbsp;';
}
echo <<<abyr
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pangination</title>
</head>
<body>
$str
<div id="paginator">
$paginator
</div>
<button type="button" click="getPage">Пам-пам</button>
</body>
</html>
<script>
console.log('start script')
let parent = document.getElementById('paginator')
parent.addEventListener('click', getPage)
async function getFetch(url) {
const response = await fetch(url, { method:'get'} )
// return await response.json();
return await response.text();
}
// parent = document.getElementById('paginator')
// console.log(parent)
parent.addEventListener('click' , getPage )
async function getPage(event) {
event.stopPropagation()
event.preventDefault()
let url = event.target.getAttribute('href')
let data = await getFetch(url)
feed = document.getElementById('feed')
feed.innerHTML = feed.innerHTML + data
console.log(data)
}
</script>
abyr;

53
AXIOS/portial.php Normal file
View File

@ -0,0 +1,53 @@
<?php
define('LIMIT', 5);
define('OFFSET', 0);
$arrMusic = [
'Открываем',
'набор',
'на',
'оплачиваемую',
'стажировку',
'Вы',
'спрашивали',
'вы',
'ждали',
'и',
'вот',
'мы',
'возвращаемся',
'с',
'анонсом',
'стажировки',
'для',
'разработчиков!',
'6 месяцев',
];
$len = sizeof($arrMusic);
// $limit = $_GET['limit'] or LIMIT;
$limit = isset($_GET['limit']) ? $_GET['limit'] : LIMIT;
// $offset = $_GET['offset'] or OFFSET;
$offset = isset($_GET['offset']) ? $_GET['offset'] : OFFSET;
$portial = array_slice($arrMusic, $offset, $limit);
// print($len);
$str = '<ul>';
foreach ($portial as $value) {
$str .="<li>$value</li>";
}
$str .= '';
// $countPage = intdiv($len , $limit);
// // var_dump($countPage);
// $paginator = '';
// for ($i = 0; $i < $countPage; $i++) {
// $paginator .= '<a href= "page.php?offset='.LIMIT*$i.'&limit='.LIMIT.'">'.$i.'</a>&nbsp;';
// }
header('Content-Type: plan/text; charset=utf-8');
echo ($str);