Platton
@Platton

Как исправить код?

Сделал скроллинг по станицам на php, все работает как надо.
Но при просмотре в браузере исходного кода страницы обнаружил лишние безадресные ссылки:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Листалка страниц</title>
</head>

<body>

<a href="index2.php?page=1">1</a>
 ... <a href="index2.php?page="></a>
<a href="index2.php?page="></a>
<a href="index2.php?page="></a>
<a href="index2.php?page=5">5</a>
<a href="index2.php?page="></a>
<a href="index2.php?page="></a>
<a href="index2.php?page=6">6</a>
<a href="index2.php?page="></a>
<a href="index2.php?page="></a>
<a href="index2.php?page=7">7</a>
<a href="index2.php?page="></a>
<a href="index2.php?page="></a>
<a href="index2.php?page=8">8</a>
<a href="index2.php?page="></a>
<a href="index2.php?page="></a>
<a href="index2.php?page=9">9</a>
<a href="index2.php?page="></a>
<a href="index2.php?page="></a>
<a href="index2.php?page="></a>
 ... <a href="index2.php?page=20">20</a>

</body>
</html>


Вот мой скрипт:
// общее количество пользователей
$count_users = 200;
// количество на одной странице пользователей
$limit_users = 10;
// всего страниц
$allpages = ceil($count_users / $limit_users);
// количество видимых ссылок
$seepages = 5;

$inipage = 1;
$lastpage = $seepages;
$startpage = $inipage;
$endpage = $allpages;
$start_points = ' ... ';
$end_points = ' ... ';

if($allpages <= $seepages)
{
	$lastpage = $allpages;
	$endpage = '';
	$end_points = '';
	$startpage ='';
	$start_points = '';
}
elseif($page >= $allpages -  ceil($seepages / 2))
{
	$inipage = $allpages - ($seepages -1);
	$lastpage = $allpages;
	$endpage = '';
	$end_points = '';
}
elseif($page <= $inipage +  ceil($seepages / 2))
{
	$lastpage = $seepages;
	$startpage = '';
	$start_points = '';
}
else
{
	$inipage = $page - floor($seepages / 2);
	$lastpage = $page + floor($seepages / 2);
}

// Массив объектов с элементов для листовки  
$pages[] = (object) array("start_points" => $start_points, "startpage" => $startpage);

for($inipage; $inipage <= $lastpage; $inipage++)
	$pages[] = (object) array("inipage" => $inipage);
	
$pages[] = (object) array("end_points" => $end_points, "endpage" => $endpage);

//print_r($pages);

?>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Листалка страниц</title>
</head>

<body>

<?php foreach ($pages as $page): ?>
<a href="index2.php?page=<?= $page->startpage ?>"><?= $page->startpage ?></a>
<?= $page->start_points ?>
<a href="index2.php?page=<?= $page->inipage ?>"><?= $page->inipage ?></a>
<?= $page->end_points ?>
<a href="index2.php?page=<?= $page->endpage ?>"><?= $page->endpage ?></a>
<?php endforeach; ?>

</body>
</html>


Как убрать не нужные лишние ссылки? Главным условием является не допустимость использования html тегов в коде php.
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 2
@1Michael1
начать однозначно нужно с самого начала...
добавить в начало скрипта:
error_reporting(E_ALL);

а дальше разбирать ошибки, которые поваляться.
Ответ написан
Комментировать
@lavrentiev
Back-end разработчик
Короче вот это робот, а теперь что увидел взглянув на код.

У тебя в HTML когда ты переберешь массив $pages, в твоем случае как я понимаю start_points и startpage идут пустыми, а также вынеси из foreach свои start и end points, имхо будут дубли. Собственно я к чему, что твои пустые ссылки и есть пустые дубли start и end points and startpage и endpage.

Включи отображение ошибок и посмотри не знаю там к примеру свой массив через print_r.

В целом конечно плохо, но удачи в изучение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы