如果 session 存在,加载模态弹出窗口?

Load a modal popup if a session exists?

您好,如标题所示,如果页面加载时存在 session,我想加载模式弹出窗口。

我目前将其用作一种 Flash 消息。例如,如果提交表单,php 脚本会创建成功 session,其中包含成功消息。

然后重定向到上一页。该页面上有一个 If 语句,用于检查 session 是否存在,如果存在,则将其回显,然后销毁 session,因此如果重新加载页面,它会再次显示。

因此,我不想显示成功消息,而是希望打开一个模式 window。

我原以为这会很简单,但我似乎做不到。

虽然我确定这是重复的,并且可能很容易通过 google 找到...是的,这可能。

你可以这样做:

<?php if (isset($_SESSION['success'])) { ?>

<div class="modal hide fade" id="myModal">
    <div class="modal-header">
        <a class="close" data-dismiss="modal">×</a>
        <h3>Success</h3>
    </div>
    <div class="modal-body">
        <p><?php echo $_SESSION['success']; ?></p>
    </div>
    <div class="modal-footer">
        <a class="close btn" data-dismiss="modal">Close</a>
    </div>
</div>

<script type="text/javascript">
    $(window).load(function () {
        $('#myModal').modal('show');
    });
</script>
<?php } ?>

这纯粹是一个例子。我会做很多不同的事情,但这应该会引导你朝着正确的方向前进。

再次感谢您的帮助。这是我在帮助表格 Dish_Rex 中使用的解决方案(谢谢)。

我有另一个 PHP 脚本在后台工作,从提交开始创建一个名为 'loyalty' 的会话并重定向回工作页面。

此页面然后检查是否设置了 'loyalty' 会话并调用模式加载。然后取消设置会话,这样它就不会在页面重新加载时再次显示。

<?php 
    if(Session::exists('loyalty')) {
        echo "<script> $(function(){ $(window).load(function(){ $('.modal_card').rsModal(); }); }); </script>";
        unset($_SESSION['loyalty']);
    }
?>

我希望这对其他人有帮助。

尝试了几件事,这对我来说效果最好:

if (isset($_SESSION['error'])) {
    $error = "
<script>$('<div></div>').appendTo('body')
            .html('<div><h6> ".$_SESSION['error']."</h6></div>')
            .dialog({
                modal: true,
                dialogClass: \"alert\",
                autoOpen: true,
                // width: 'auto',
                resizable: false,
                background: '#0480be',
                close: function(event, ui) {
                    $(this).remove();
                }
            });
            </script>";
    unset($_SESSION['error']);
}