календарь — страница поднимается после нажатия кнопки Переполнение стека

Я использовал календарь из Интернета, который использует PHP. У него есть кнопки, такие как «Далее» и «Предыдущая», и когда я нажимаю одну из них, она выводит меня наверх страницы. Как я могу это исправить?

Это код, где я создаю календарь:

    return
'<div class="header">'.
'<a class="prev" href="'.$this->naviHref.'?
month='.sprintf('%02d',$preMonth).'&year='.$preYear.'">Prev</a>'.
'<span class="title">'.date('Y M',strtotime($this->currentYear.'-'.$this->currentMonth.'-1')).'</span>'.
'<a class="next" href="'.$this->naviHref.'?month='.sprintf("%02d", $nextMonth).'&year='.$nextYear.'">Next</a>'.
'</div>';
}

А вот calendar.php

https://ideone.com/SkECOp

0

Решение

Я думаю, что проблема заключается не в вашем обновленном коде, а в назначении $_SERVER['PHP_SELF'] в naviHref в конструкторе.

public function __construct() {
$this->naviHref = htmlentities($_SERVER['PHP_SELF']);
}

Прочитайте $_SERVER['PHP_SELF'] значение в сценарии, где вы создаете Calendarэкземпляр и передать это значение в качестве аргумента Calendar конструктор. В котором он будет присвоен naviHref,

Также первые две строчки внутри show() поднимают уведомления

$year == null;
$month == null;

Измените их на

$year = null;
$month = null;

редактировать:

Чтобы использовать свой календарный компонент, вы должны создать его экземпляр, объект Calendar типа, вот так:

$calendar = new Calendar();

Это происходит в php-файле.

Но прежде чем сделать этот шаг, присвойте значение $_SERVER['PHP_SELF'] к переменной. Как это:

$naviHref = htmlentities($_SERVER['PHP_SELF']);

И после этого создайте свой объект типа Calendar, передав ему переменную, в качестве аргумента. Как это:

$calendar = new Calendar($naviHref);

Итак, в конце у вас будет следующий код на вашей странице php:

$naviHref = htmlentities($_SERVER['PHP_SELF']);
$calendar = new Calendar($naviHref);

echo $calendar->show();

После этого перейдите к Calendar конструктор и измените его так:

public function __construct($naviHref) {
$this->naviHref = $naviHref;
}

Таким образом, вы внедрили переменную $ naviHref в ваш объект класса Calendar,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector