每次按下按钮时,将 +7 添加到变量$i,无需重新加载页面


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

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

下面的函数使用变量$i来确定您要前进多少天,因此在我的情况下,当 $i = 7 时,它会向前跳跃 7 天。此函数工作正常。

时间表.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请求发送到您将要创建的调用getDay的url,例如getDay.php?i=0。 getDay返回日期,并在javascript中更新日期。

您的

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