这是我的问题。
我正在建立一个网上商店,对于我的提醒和通知,我使用三种类型的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
进行这种规模的项目,所以我还不熟悉它。我希望我的问题很清楚。提前谢谢。
答案 0 :(得分:0)
只需在重新定位中添加延迟。
<script>setTimeout(function(){window.location="index.php?show=register"}, 5000)</script>
这种方式window.location
将在5000
毫秒(5秒)后触发
要在重定向后显示它,您需要将代码更改为以下内容:
elseif($already_registered){
echo '<script>window.location="index.php?show=register&redirected=1"</script>';
}
注意&redirected=1
部分。这是要知道我们被重定向并且必须输出消息
现在在index.php
文件中添加
if(isset($_GET["redirected"])){
<div class='animated fadeInUp alert-warning'>
This e-mail is already in use.
</div>
}
这样我们确认我们被重定向并显示消息
答案 1 :(得分:0)
当评估脚本时,用户将被带到另一个页面,因此“重新定向后回显”将不会为您做任何事情。
如果您要坚持使用这条路线,而不是使用像AJAX调用这样的东西,我建议您在index.php中添加一个参数(就像show中一样),它可以让您指定重定向的原因。 / p>
index.php?show = register&amp; emailUsed = true的内容足以告诉您需要显示错误以及注册页面,例如index.php?show = register&amp;如果您有许多条件要进行分类,则error = emailUsed将会有所帮助。