重新加载页面,保持会话

时间:2012-08-03 12:30:30

标签: php session post refresh

我正在尝试开发一个功能,用户可以点击“Previos周”/“下周”,这将触发一些$_SESSION变量来更改值(日期)。

我在 absence.php 上有这个代码(我知道PRG模式没有实现。我不知道怎么做但仍保留功能)。

<?php
if (isset($_POST['decrease_date'])) {
    $monday_value = ($_SESSION['sess_mon'] = strftime("%Y-%m-%d", strtotime("{$_SESSION['sess_mon']} -1 day")) );
}
if (isset($_POST['increase_date'])) {
    $monday_value = ($_SESSION['sess_mon'] = strftime("%Y-%m-%d", strtotime("{$_SESSION['sess_mon']} +1 day")) );
}
else {
    $monday_value = ($_SESSION['sess_mon'] = date('Y-m-d', strtotime('Monday this week')) );
}
?>

 <form action='absence.php' method='post'>
  <input type="hidden" name="decrease_date"/>
  <input type='submit' value='Previous'>
 </form>

<form action='absence.php' method='post'>
 <input type="hidden" name="increase_date"/>
<input type='submit' value='Next'>
</form>

现在我想重新加载页面(使用jQuery location.reload() - 函数),但仍保留$_SESSION在页面刷新之前当前处于活动状态的内容。目前,这将“重置”,因为没有$_POST

理想情况下,我想将<form action'#'>发送到另一个页面。但是,当您首次输入 absence.php 时,应重置日期。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

变化

session_start();

成:

if (!isset($_SESSION)){
  session_start();
}

答案 1 :(得分:0)

您不能只通过jquery $("form#frmDate").submit();提交表单,而不是重新加载。不要忘记为表单frmDate提供ID。

这是你在找什么?