Symfony 2中的双重确认框

时间:2016-06-01 19:00:25

标签: javascript php jquery symfony

我在Symfony中有一个包含表单的视图。在提交表单之前,我在jQuery中有一个确认框。提交表单后,在控制器函数中,我检查数据库中表单的值,然后在执行操作之前显示另一个确认框,取决于表单的值。

我的问题是如何在我的例子中显示第二个确认框

这是我的观点:

<div>
    <form id="regexpForm" action="" method="post">
        <input type="hidden" name="action" value="test" />
        <ul>
            <li class="clear mandatory">
                <input type="submit" class="button" value="submit" />
            </li>
        </ul>
    </form>
    <div id="dialog" title="Confirmation"></div>
</div>
<script>
    jQuery( document ).ready(function( $ ) {
        var userConfirmed = false;
        $("#regexpForm").validate({
            submitHandler: function(form) {
                $("#dialog").dialog({
                    open: function () {
                        var markup = 'Confirmation';
                        $(this).html(markup);
                    },
                     buttons: {
                         "Ok": function() {
                             form.submit();
                             $(this).dialog("close");
                         },
                         "Cancel": function() {
                             $(this).dialog("close");
                         }
                     }
                });
            }
        });
    });
</script>

我控制器中的功能:

public function testAction()
{
    //Verification of $this->get('request')->get('action') in DB
    if($this->get('request')->get('action'))
    {
        // Display a confirmation box and if ok execute action 1
    }
    else
    {
        // Display a confirmation box and if ok execute action 2
    }
}

提前谢谢

1 个答案:

答案 0 :(得分:0)

您需要对testAction进行ajax调用。如果预期值正常,则返回一个标记,表示如此。然后你在你的JavaScript中抓住这个标志。如果标志为true,则显示另一个确认框。 然后,当用户验证第二个确认框时,您将再次呼叫您想要的action中的controller,执行操作1或2。 关键是,这是一个两步过程。