验证完成后如何显示模态窗口?

问题描述 投票:-1回答:1

我在我的页脚网站上发了一份订阅时事通讯的表格。这个代码是:

<h4>Newsletter Subscribe:</h4> 
<form method="POST" action="<?php URL::show("Newsletter", "create") ?>">
    <div class="col-md-12">
        <div class="input-group">
            <input type="text" class="form-control" name="subscriber" placeholder="[email protected]">
            <input type="submit" class="btn btn-primary" value="Subscribe">
        </div>
    </div>
</form>

当我单击提交按钮时,将调用NewsletterController中的createAction方法,如下所示:

public function createAction(){
    if($_SERVER["REQUEST_METHOD"] == "POST"){
        $validation = true;
        $error = "";

        if(trim($_POST["subscriber"]) == ""){
            $validation = false;
            $error = "The field 'subscriber' is required!";
        }

        if(trim($_POST["subscriber"]) != ""){
            if(!preg_match('/^([a-z0-9]+([_\.\-]{1}[a-z0-9]+)*){1}([@]){1}([a-z0-9]+([_\-]{1}[a-z0-9]+)*)+(([\.]{1}[a-z]{2,6}){0,3}){1}$/i', $_POST["subscriber"])){
                $validation = false;
                $error = "The field 'subscriber' must contain a valid input!";
            }
        }

        if($validation){
            $checkSubscriber = $this->newsletterRepository->checkSubscriber($_POST["subscriber"]);
            if(!$checkSubscriber){
                $newsletter = new Newsletter();
                $newsletter->setEmail($_POST["subscriber"]);
                $result = $this->newsletterRepository->insert($newsletter);
                if(!$result){
                    $error = "There was an error in the newsletter 
                }
            }else{
                $error = "The e-mail already registered for newsletter!";
            }
        }
    }else{
        URL::redirect("Restaurants", "listAll");
    }
}

现在,在我完成所有验证并在数据库中插入数据后,我不想转到另一个网页,如果一切正常,我想显示带有确认消息的弹出窗口,如果出现错误则显示错误消息。像这样的东西:

<div class="modal fade bd-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Newsletter Subscription</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <div class="container-fluid">
                    <?php if($result): ?>
                        <p style="color:green">Newsletter subscription successfuly!</p>
                    <?php elseif($error): ?>
                        <p style="color:red"><?php echo $error; ?></p>
                    <?php endif; ?>
                </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
        </div>
   </div>
</div>

但是我不知道在完成所有操作和验证后如何触发模态。有人可以帮忙吗?

php modal-dialog newsletter subscribe
1个回答
0
投票

我能想到的最简单的方法之一就是使用javascript。验证成功完成后,您可以调用这样的javascript函数:

 echo "<script type="text/javascript">the_function_you_want_to_call_from_javascript_file();
 </script>";

在您的javascript文件中,您可以调用模态并进行自定义。希望能帮助到你 :)

© www.soinside.com 2019 - 2024. All rights reserved.