运行POST脚本后,我想导航回调用它的页面。在脚本结束时,我可以调用这样的东西来导航回来:
header("Location: /url/to/the/other/page");
但使用它的限制是我无法在该调用之前向用户输出“成功将数据插入数据库”。回到原始页面后,如何显示该通知?
答案 0 :(得分:1)
严格地说,您无法从包含也显示输出的标题的页面重定向。您可以将输出发送到浏览器,也可以发送重定向标题,但不能同时发送两者。
如果要显示内容,请等待几秒钟,然后发送重定向,您将需要在JavaScript中使用客户端重定向。像这样:
<html>
<head>
<script type="text/javascript">
setTimeout( function() {
location.href='/newpage.html',
}, 5000 );
</script>
<body>
successfully inserted data to database.
</body>
</html>
这将呈现<body>
中的内容,等待5秒,然后执行重定向页面的setTimeout()
中的函数。
从技术上讲,这不是真的..一旦JS执行,无论页面是否完成加载,5秒计数器就会开始。
如果您希望在您调用的同一页面上显示通知而不是重定向到中间页面,则应设置会话值:
$_SESSION['note'] = 'data_saved';
然后在要显示通知的页面上:
if ( isset( $_SESSION['note'] ) && $_SESSION['note'] == 'data_saved' ) {
echo "successfully inserted data to database.\n";
unset( $_SESSION['note'] );
}
这将要求您在引用session_start()
的任何网页顶部运行$_SESSION
;