我的问题:我不知道每次按下按钮时如何向变量$ 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...
答案 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中更新日期。
您的逻辑很简单,最好将其保留在客户端,但对于复杂的算法,您可能希望在服务器端运行您的方法,因为客户端代码是可见的。