我有一个显示时间表的网页区域,用户可以左右点击一周前进/后退:
<script type="text/javascript">
var TimesheetOffset = 0;
function TimesheetNav(AdjustBy) {
TimesheetOffset = TimesheetOffset + AdjustBy;
$("#timesheets").load("populate_timesheets.php?start=" + TimesheetOffset);
}
</script>
populate_timesheets.php
脚本在ID为“timeheets”的DIV区域中显示时间表信息,但仅当用户已登录且其会话未到期时 - 如果会话已过期,则显示登录页面:
if (!isset($_SESSION['login_user'])) {
header("location: index.php");
}
问题是如果会话超时,index.php
脚本会显示应显示时间表的位置,而不是替换整个页面。我如何改变PHP或JavaScript,以便如果会话超时,登录页面将替换整个页面?
答案 0 :(得分:1)
JavaScript代码:
$.ajax("populate_timesheets.php?start=" + TimesheetOffset, {
type: "GET",
statusCode: {
401: function (response) {
// redirect to login page
}
},
success: function (data) {
$( "#timesheets" ).html(data);
},
error: function (error) {
console.log('Error occured: ', error);
}
});
PHP代码:
if (!isset($_SESSION['login_user'])) {
header("HTTP/1.1 401 Unauthorized");
return;
}
我不测试此代码,因此如果您遇到问题,请阅读有关AJAX请求的jQuery文档:)