首先,我想提一提,这是我第一次在这里创建线程,所以对不起,如果我做错了什么。
无论如何,我正在使用自己的论坛系统,因此得出的结论是,无论用户是成功消息还是失败消息,我都需要在用户操作后显示弹出消息。我需要在论坛上使用该系统。
我已经进行了大量研究,并尝试了许多方法来获得这种类型的系统,但在我看来,最有意义的方法是使用会话作为触发器并存储消息本身。
事不宜迟,这就是我想出的:
function popupMessage(){
setTimeout(function(){
setTimeout(function(){
$('.popup_message').remove('');
}, 3000);
$('.popup_message').fadeOut();
}, 3000);
$('.header').append('<div class="popup_message success"><span><i class="fa fa-fw fa-check-circle"></i></span><p>success</p></div>');
}
此功能在我的js文件中,该文件包含我的所有功能。
if(isset($_SESSION['message'])){
$message = $_SESSION['message'];
echo '
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script type="text/javascript" src="/assets/myscripts.js"></script>
<script type="text/javascript">
var message = \''.$message.'\';
popupMessage()
</script>';
unset($_SESSION['message']);
}
该段代码已归档,并包含在我论坛的每个页面的标题中。
$_SESSION['message'] = 'success!';
header("Location: $location");
以这两个行为例,当提交表单时。
我现在有点被困,我不知道该怎么办,我会告诉你为什么,功能popupMessage()
本身可以正常工作,但是当我通过它调用时,它将根本无法工作if(isset($_SESSION['message']))
条件。
同样重要的是要补充一点,当我尝试用简单的alert()
替换函数调用时,它工作正常,这意味着已设置消息,但是当函数通过beeing调用时,函数将不会运行条件。
顺便说一句,我想很明显,javascript或jquery并不是我的强项,我对这些还不是很陌生,所以对不起,如果我让您的眼睛受伤或有其他任何伤害。
非常感谢您的帮助!
答案 0 :(得分:0)
由于操作的顺序,您需要确保在DOM中创建弹出消息的HTML的位置下面调用popupMessage()
。否则,您可以像这样
$(document).ready();
函数中加载它
$(document).ready(function() {
popupMessage();
});
确保在执行JS之前存在HTML元素。