重新加载页面,保持会话。

3

我正在尝试开发一个函数,用户可以点击“上一周”/“下一周”,这将触发一些$_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个回答

1

变更

session_start();

转换为:

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

我很好奇,这会对我有什么帮助呢? - David
每次提交表单时,不要创建新的会话。 - arnoudhgz
哦,我忘记了我根本不需要session_start(),因为它是从另一个页面继承的。absence.php被包含在index.php中。 - David
抱歉,我没有完全理解你的问题,实际上我的回答只是一条评论... :D - arnoudhgz

0

不必重新加载页面,你可否通过jQuery提交表单:$("form#frmDate").submit(); 不要忘记给你的表单添加ID frmDate

这是你要找的吗?


我认为这不是我要找的。变量在MySQL查询中用于列出行,根据值改变颜色,就像数据网格一样。每当用户编辑一行并单击“保存”时,我希望重新加载数据。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接