每次按下按钮时向变量 $i 添加 +7,不重新加载页面

Add +7 to variable $i each time button is pressed, no page reload

我的问题:我不知道如何在每次按下按钮时将 +7 添加到变量 $i。我尝试使用 isset($_POST) 但是你只能执行代码块将 +7 添加到 $i 一旦我希望它是无限的。

下面的函数使用变量 $i 来确定你想要前进多少天,所以在我的例子中,当 $i = 7 时它向前跳转 7 天。这个功能很好用。

Timeschedule.php

// UPDATED: Used other function instead to show what desired results i want to achieve

public function getDate($i){
        date_default_timezone_set('Europe/Amsterdam');
        $datetime = new DateTime('today');
        $datetime->modify('+' . $i . 'day');
        $output = $datetime->format('d-m-Y');

        return $output;
}

Orderstep_1.php

// This file includes timeschedule.php
include timeschedule.php

<input name="testbutton" class="testbutton" id="testbutton" type="submit" value="=>" />

现在我将 isset 与 post 一起使用,但它只能在页面上执行一次代码,我需要不受限制。

if(isset($_POST['testbutton'])){
   $i = $i + 7;
}

希望你们能指引我正确的方向。

更新:

这段代码输出数据

$testObject = new TimeSchedule();
$date1 = $testObject->getDate(0); echo $date1;

输出结果

02-02-2015

点击按钮后我想要实现的输出

09-02-2015
16-02-2015 
23-02-2015
etc...

您正在尝试使用 PHP 实现客户端逻辑。 PHP 是 运行 一次,在服务器端,输出(页面)被发送到客户端。之后,php中的变量就不存在了。

对于客户端逻辑,您可能需要 javascript。 Javascript 在客户端是 运行,不像 PHP。

您需要在 javascript 中重写 getDay,为 i 使用上下文或某些全局变量,并将 i 传递给 getDay 每次点击按钮。

另一种选择是将 i 存储在 javascript 中,但将 getDay 保留为 PHP 代码,然后每当 i 发生变化时,发送一个 ajax 请求 url 您将要创建的调用 getDay,例如 getDay.php?i=0。 getDay returns 日期,并在 javascript.

中更新日期

您的逻辑很简单,最好将其保留在客户端,但对于复杂的算法,您可能希望 运行 将您的方法放在服务器端,因为客户端代码是可见的。