按下按钮PHP后页面上升

时间:2017-05-14 16:55:05

标签: php calendar

我使用了互联网上使用PHP的日历。它有“next”和“prev”等按钮,当我按下其中一个按钮时,它会将我带到页面顶部。我该如何解决这个问题?

这是我创建日历的代码:

    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

1 个答案:

答案 0 :(得分: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的对象中。