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

时间:2015-02-02 08:25:34

标签: php jquery ajax button

我的问题:我不知道每次按下按钮时如何向变量$ i添加+7。我尝试使用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 with 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...

1 个答案:

答案 0 :(得分:2)

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

对于客户端逻辑,您可能需要使用javascript。与PHP不同,Javascript在客户端运行。

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

另一种选择是将getDay存储在javascript中,但保留i作为PHP代码,然后每当getDay更改时,将ajax请求发送到您要去的网址创建调用{{1}},如getDay.php?i = 0。 getDay返回日期,并在javascript中更新日期。

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