[英]PHP/HTML navigate to another page AND display output?
运行POST脚本后,我想导航回到调用它的页面。 在脚本的结尾,我可以调用类似的代码来导航:
header("Location: /url/to/the/other/page");
但是使用的限制是,在调用之前,我无法向用户输出“已成功将数据插入数据库”。 回到原始页面时,如何显示该通知?
严格来说,您无法从具有可显示输出的标题的页面进行重定向。 您既可以将输出发送到浏览器,也可以发送重定向标头,但不能两者都发送。
如果要显示某些内容,请等待几秒钟,然后发送重定向,您将需要在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
页面的顶部运行session_start()
;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.