繁体   English   中英

PHP / HTML导航到另一个页面并显示输出?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM