Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php submitHandler:触发不正确的对话框_Php_Jquery_Ajax - Fatal编程技术网

Php submitHandler:触发不正确的对话框

Php submitHandler:触发不正确的对话框,php,jquery,ajax,Php,Jquery,Ajax,我试图调试submitHandler的一个问题:函数。在firebug中,它根据submitHandler中的真实句柄显示正确的错误消息。但是,它触发的是成功对话框,而不是错误对话框。我对jquery和ajax相当陌生,所以我在错误的地方用了一些括号或逗号 如果有人能指出我的错误,我将不胜感激。谢谢 submitHandler: function() { if ($("#USRboxint").valid() === true) {

我试图调试submitHandler的一个问题:函数。在firebug中,它根据submitHandler中的真实句柄显示正确的错误消息。但是,它触发的是成功对话框,而不是错误对话框。我对jquery和ajax相当陌生,所以我在错误的地方用了一些括号或逗号

如果有人能指出我的错误,我将不胜感激。谢谢

submitHandler: function()   {
                if ($("#USRboxint").valid() === true)  { 
                var data = $("#USRboxint").serialize() + '&submit=true';
                $.post('/domain/users/box.php', data, function(msgs) {

                if (msgs.boxerror === true) {

                   var $dialog = $('<div id="dialog"></div>').html('<br /><b>Your New entry was NOT SUBMITTED.<br /><br />Thank you.</b>');
                   $dialog.dialog({
                   autoOpen: true,
                   modal: true,
                   title: 'New entry Unsuccessfull',
                   width: 400,
                   height: 200,
                   draggable: false,
                   resizable: false,
                   buttons: {
                   Close: function() {
                   $( this ).dialog( "close" );
                   }
                   }
                   });

                    }

                else

               var messageOutputs = '';
                for (var i = 0; i<msgs.length; i++){

                    messageOutputs += msgs[i].box+'  ';

                }



                $("#USRboxint").get(0).reset();

                var $dialog = $('<div id="dialog"></div>').html('<br /><b>Your New entry was successfully submitted.<br /><br />Thank you.</b>');
                   $dialog.dialog({
                   autoOpen: true,
                   modal: true,
                   title: 'New entry successfull',
                   width: 400,
                   height: 200,
                   draggable: false,
                   resizable: false,
                   buttons: {
                   Close: function() {
                   $( this ).dialog( "close" );
                   }
                   }
                   });

                //$("#frmreport").get(0).reset();
                }, 'json');

         } 
        },
        success:    function(msgs)   {

        } 
submitHandler:function(){
如果($(“#USRboxint”).valid()==true){
var data=$(“#USRboxint”).serialize()+'&submit=true';
$.post('/domain/users/box.php',数据,函数(msgs){
如果(msgs.boxerror===true){
var$dialog=$('').html('
您的新条目未提交。

谢谢。'); $dialog.dialog({ 自动打开:对, 莫代尔:是的, 标题:“新条目未成功”, 宽度:400, 身高:200, 可拖动:错误, 可调整大小:false, 按钮:{ 关闭:函数(){ $(此).dialog(“关闭”); } } }); } 其他的 var messageOutputs=''; 对于(var i=0;i
每次创建对话框效率不高,最好在文档准备就绪时初始化对话框:

$(function(){

    $('<div id="dialog_error"></div>').html('<br /><b>Your New entry was NOT SUBMITTED.<br /><br />Thank you.</b>').dialog({
        autoOpen: false,
        modal: true,
        title: 'New entry Unsuccessfull',
        width: 400,
        height: 200,
        draggable: false,
        resizable: false,
        buttons: {
            Close: function () {
                $(this).dialog("close");
            }
        }
    });


    $('<div id="dialog_success"></div>').html('<br /><b>Your New entry was successfully submitted.<br /><br />Thank you.</b>').dialog({
        autoOpen: false,
        modal: true,
        title: 'New entry successfull',
        width: 400,
        height: 200,
        draggable: false,
        resizable: false,
        buttons: {
            Close: function () {
                $(this).dialog("close");
            }
        }
    });

});
$(函数(){
$(“”).html(“
您的新条目未提交。

谢谢。”)。对话框({ 自动打开:错误, 莫代尔:是的, 标题:“新条目未成功”, 宽度:400, 身高:200, 可拖动:错误, 可调整大小:false, 按钮:{ 关闭:函数(){ $(此).dialog(“关闭”); } } }); $('').html('
您的新条目已成功提交。

谢谢。')。对话框({ 自动打开:错误, 莫代尔:是的, 标题:“新条目成功”, 宽度:400, 身高:200, 可拖动:错误, 可调整大小:false, 按钮:{ 关闭:函数(){ $(此).dialog(“关闭”); } } }); });
然后在需要时打开它们:

submitHandler: function () {
    if ($("#USRboxint").valid() === true) {
        var data = $("#USRboxint").serialize() + '&submit=true';
        $.post('/domain/users/box.php', data, function (msgs) {

            if (msgs.boxerror === true) {

                $("#dialog_error").dialog("open");//Open error dialog

            } else var messageOutputs = '';
            for (var i = 0; i < msgs.length; i++) {

                messageOutputs += msgs[i].box + '  ';

            }



            $("#USRboxint").get(0).reset();

            $("#dialog_success").dialog("open");//Open success dialog

            //$("#frmreport").get(0).reset();
        }, 'json');

    }
}
submitHandler:函数(){
if($(“#USRboxint”).valid()==true){
var data=$(“#USRboxint”).serialize()+'&submit=true';
$.post('/domain/users/box.php',数据,函数(msgs){
如果(msgs.boxerror===true){
$(“#dialog_error”).dialog(“open”);//打开错误对话框
}else var messageOutputs='';
对于(变量i=0;i
您应该在else语句的代码周围添加大括号,否则只有第一行是else块的一部分,并且不管执行什么,它之后的所有行都将被执行

更改此项:

else
    var messageOutputs = '';
为此:

else {
    var messageOutputs = '';

    // Other lines that belong in the else block.
}

我不同意Wilmer的观点,但您应该在对话框关闭时正确清理它。因为您创建div只是为了显示一次对话框,所以应该在对话框关闭时删除它。您可以通过添加以下对话框选项来执行此操作:

close: function() { $(this).dialog('destroy').remove(); },

我认为问题与(msgs)有关。我得到的typeError msgs为空。我认为我需要在第一个块和第二个块中使用“json”,但不确定如何编码。有什么想法吗?谢谢
close: function() { $(this).dialog('destroy').remove(); },