我有以下代码。我正在尝试在同一页面中处理两个表单帖子。代码正在做的是每当用户点击“next14days”按钮时,它会显示接下来14天的数据,如果用户点击“prev14days”,它应该显示前14天的数据。这对我来说不起作用。
例如,假设当前日期是2011/01/03,我打了next14days当前日期应该是2011/01/17。这有效,但当我打到prev14days,这应该会让我回到2011/01/03,这将是2010/12/20,看起来像(2011/01/03 - 14)。每次用户点击其中一个按钮时页面都会刷新,无论是哪种方式都无法访问IF子句中的任何内容。
<?php
if(($prevFlag == '' || $nextFlag == ''))
{
$currentDay = date('Y/m/d');
$SQL4 = "Exec EmployeeVac '" . $currentDay . "'";
$result4 = mssql_query($SQL4,$link1) or die('An error occured: ' . mssql_get_last_message());
}
if (isset($_POST['next14submit']))
{
$nextFlag = 'yes';
if($prevFlag == 'yes')
{
$next14 = date('Y/m/d', strtotime($prev14 . "+14 days"));
$currentDay = $next14;
$SQL4 = "Exec EmployeeVac '" . $currentDay . "'";
$result4 = mssql_query($SQL4,$link1) or die('An error occured: ' . mssql_get_last_message());
}
else
{
$next14 = date('Y/m/d', strtotime($currentDay . "+14 days"));
$currentDay = $next14;
$SQL4 = "Exec EmployeeVac '" . $currentDay . "'";
$result4 = mssql_query($SQL4,$link1) or die('An error occured: ' . mssql_get_last_message());
}
}
if (isset($_POST['prev14submit']))
{
$prevFlag = 'yes';
echo $nextFlag;
if($nextFlag == 'yes')
{
$prev14 = date('Y/m/d', strtotime($next14 . "-14 days"));
$currentDay = $prev14;
$SQL4 = "Exec EmployeeVac '" . $currentDay . "'";
$result4 = mssql_query($SQL4,$link1) or die('An error occured: ' . mssql_get_last_message());
}
else
{
$prev14 = date('Y/m/d', strtotime($currentDay . "-14 days"));
$currentDay = $prev14;
$SQL4 = "Exec EmployeeVac '" . $currentDay . "'";
$result4 = mssql_query($SQL4,$link1) or die('An error occured: ' . mssql_get_last_message());
}
}
?>
答案 0 :(得分:0)
您没有通过“前14天”的任何参考资料来计算......
基本上,在您的脚本中,您将从今天的日期开始计算前14天。
有点丢失了这个部分..(除非这不是所有的代码)
if(($prevFlag == '' || $nextFlag == '')) { $currentDay = date('Y/m/d');
基本上,该代码将始终显示...
然后您将引用:
$prev14 = date('Y/m/d', strtotime($currentDay . "-14 days"));
所以你只是从今天开始减去14天?
答案 1 :(得分:0)
您需要在表单中包含当前日期,以便您的php脚本知道前进或后退的开始日期。
if(isset($_POST['currentDay'])){
$currentDay = strtotime($_POST['currentDay']);
} else {
$currentDay = date('Y/m/d');
}
你必须重新认识到php不是一种有状态的语言。您的脚本只知道您传递的内容。如果你没有把它作为开始日期传递,那么它将不知道从何处开始添加或删除14天。
祝你好运。