首页 > 解决方案 > 使用 JS 的 window.location 时如何 PHP 回显某些内容?

问题描述

这是我的问题。我正在建立一个网上商店,对于我的警报和通知,我使用了三种类型divs (它们仅在背景颜色上有所不同),它们会在 3-4 秒后消失。标记基本上如下:

HTML

<div class='alert-warning'>
   Email already in use!
</div>

CSS

.alert-warning{
   background-color: rgba(255,193,7,.75);
   border-radius: 30px;
   top: 10%;
   right: 10%;
   position: absolute;
   padding: 1em;
   font-size: 1em;
   color: #eee;
   z-index: 502;
}

现在,我遇到的问题:当用户输入已经使用的电子邮件时,我的小警报 div 应该出现在右上角,就像他在未登录时尝试添加到购物车时一样。 看图片

当用户输入已在使用的电子邮件时,我有页面重定向以再次向他显示我的注册框,即在 url = 中,index.php?show=register所以我已经回显了。问题是,如果我在重定向之前回显我的 div,它会出现很短的时间然后页面重定向,如果我把它放在之后它永远不会出现。

PHP

elseif($already_registered){
                    echo '<script>window.location="index.php?show=register"</script>';
                    ?>
                        <div class='animated fadeInUp alert-warning'>
                            This e-mail is already in use.
                        </div>
                    <?php

                }

我是一名高中毕业生,这是我第一次使用PHP这种规模的项目,所以我还不是很熟悉。我希望我的问题很清楚。先感谢您。

标签: javascriptphphtmlcss

解决方案


当脚本被评估时,用户被带到另一个页面,所以“在重定向之后回显”不会为你做任何事情。

如果您要坚持这条路线,而不是使用 AJAX 调用之类的东西,我建议您在 index.php 中添加一个参数(如您所展示的那样),让您指定它们被重定向的原因。

类似于 index.php?show=register&emailUsed=true 的内容足以让您知道您需要在注册页面上显示错误,并且 index.php?show=register&error=emailUsed 之类的内容会有所帮助,如果你有许多条件来分类。


推荐阅读