首页 > 解决方案 > 为什么在 php 中调用 modal.show() 不起作用?

问题描述

当用户电子邮件不在数据库中时,我想显示模式。我用$('.ui.basic.modal').modal('show');php编写$echo。它没有显示。在语义 UI 模式示例中,模式在运行代码按钮单击时显示。Semantic-UI 示例链接 https://semantic-ui.com/modules/modal.html

我正在使用语义 UI 模式。

//PHP Code
if(!result)
{
 echo "<script>$('.ui.basic.modal').modal('show');</script>";
}
//MyModal
<div class="ui basic modal">
    <div class="ui icon header">
        <i class="frown outline icon"></i>
        Cannot find your email?
    </div>
    <div class="content">
        <p>You are still on waiting list.</p>
    </div>
</div>

标签: javascriptphpsemantic-uimodalviewcontroller

解决方案


.ui.basic.modal执行 javascript 代码时元素不存在。

您必须在模态创建后执行 js 代码,并使用 document.ready 函数或等效函数。

尝试

<?php
if(!$result){
?>
    <div class="ui basic modal">
        <div class="ui icon header">
            <i class="frown outline icon"></i>
            Cannot find your email?
        </div>
        <div class="content">
            <p>You are still on waiting list.</p>
        </div>
    </div>
    <script>
    $( document ).ready(function() {
        $('.ui.basic.modal').modal('show');
    });
    </script>
<?php
}
?>

这假设加载了 jQuery 和 Semantic-ui javascript 源。


推荐阅读