Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.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 Ajax表单提交两次_Php_Jquery_Ajax - Fatal编程技术网

Php Ajax表单提交两次

Php Ajax表单提交两次,php,jquery,ajax,Php,Jquery,Ajax,Html代码: <div class="col-lg-12" style="position:relative"> <div class="panel panel-default"> <div class="panel-heading"> <i class="fa fa-files-o fa-fw"></i> Add New Video </div>

Html代码:

<div class="col-lg-12" style="position:relative">
    <div class="panel panel-default">
        <div class="panel-heading">
            <i class="fa fa-files-o fa-fw"></i> Add New Video
        </div>
        <!-- /.panel-heading -->
        <div class="panel-body">
            <form role="form" id="VideoAdd" action="process_VideoAdd.php" method="POST">
                <div class="form-group">
                    <div class="alert" style="display:none;" id="videoError">

                    </div>
                </div>


                <div class="form-group">
                    <div class="input-group">
                        <span class="input-group-addon">
                            <i class="glyphicon glyphicon-star"></i>
                        </span> 
                        <input class="form-control" placeholder="Video Url" name="vurl" id="vurl" type="text" required>
                    </div>
                </div>

                <div class="form-group">
                    <div class="form-group">
                        <input type="submit" class="btn btn-md btn-info btn-block" value="Update">
                    </div>
                </div>
            </form>

        </div>
        <!-- /.panel-body -->
    </div>
    <!-- /.panel -->
</div>
<div class="col-lg-12" style="position:relative">
                            <div class="panel panel-default">
                                <div class="panel-heading">
                                    <i class="fa fa-files-o fa-fw"></i> Add New Video
                                </div>
                                <!-- /.panel-heading -->
                                <div class="panel-body">
                                    <form role="form" id="VideoAdd">
                                        <div class="form-group">
                                            <div class="alert" style="display:none;" id="videoError">

                                            </div>
                                        </div>


                                        <div class="form-group">
                                            <div class="input-group">
                                                <span class="input-group-addon">
                                                    <i class="glyphicon glyphicon-star"></i>
                                                </span> 
                                                <input class="form-control" placeholder="Video Url" name="vurl" id="vurl" type="text" required>
                                            </div>
                                        </div>

                                        <div class="form-group">
                                            <div class="form-group">
                                                <input type="submit" id="videoSbmt" class="btn btn-md btn-info btn-block" value="Update">
                                            </div>
                                        </div>
                                    </form>

                                </div>
                                <!-- /.panel-body -->
                            </div>
                            <!-- /.panel -->
                        </div>
这是我通过ajax提交url值的代码。它在本地主机(wamp服务器)中使用时工作良好。但是,当我将此代码上传到Web服务器并运行它时,当单击submit按钮时,它总是两次提交到数据库中

将js用作:- //禁用此按钮 //将按钮id作为 //禁用添加按钮

var is_request_sent = false; // declare global var for request
$("#VideoAdd").submit(function(e)
    {
        if(is_request_sent == false)
        {
            var postData = $(this).serializeArray();
            var formURL = $(this).attr("action");
            $("#videoError").hide();

            $.ajax(
            {
                url : formURL,
                type: "POST",
                cache: false,
                data : postData,
                success:function(data, textStatus, jqXHR) 
                {
                    if(data=="error_redirect")
                    {
                        window.location="login.php";

                    }else if(data=="success"){
                        $("#videoError").removeClass("alert-danger");
                        $("#videoError").show();
                        $("#videoError").addClass("alert-success");
                        $("#videoError").html("Successfully Updated");
                    } else {
                        alert(data);
                        $("#videoError").show();
                        $("#videoError").addClass("alert-danger");
                        $("#videoError").html("Error in updating");
                    }
                },
                error: function(jqXHR, textStatus, errorThrown) 
                {
                    is_request_sent = false;
                    $('#submit_form').removeAtrr('disabled');
                },
                beforeSend: function(){
                     // Handle the beforeSend event 
                     is_request_sent = true;
                      $('#submit_form').atrr('disabled','disabled');
                },
                complete: function(){
                 // Handle the complete event
                 is_request_sent = false;
                }
            });

            e.preventDefault(); //STOP default action
        }
    });

我已经改变了你的HTML代码,还有一些js的改变。e、 预防默认值();由于提交是一个函数而不是事件,因此无法使用您的代码

Html代码:

<div class="col-lg-12" style="position:relative">
    <div class="panel panel-default">
        <div class="panel-heading">
            <i class="fa fa-files-o fa-fw"></i> Add New Video
        </div>
        <!-- /.panel-heading -->
        <div class="panel-body">
            <form role="form" id="VideoAdd" action="process_VideoAdd.php" method="POST">
                <div class="form-group">
                    <div class="alert" style="display:none;" id="videoError">

                    </div>
                </div>


                <div class="form-group">
                    <div class="input-group">
                        <span class="input-group-addon">
                            <i class="glyphicon glyphicon-star"></i>
                        </span> 
                        <input class="form-control" placeholder="Video Url" name="vurl" id="vurl" type="text" required>
                    </div>
                </div>

                <div class="form-group">
                    <div class="form-group">
                        <input type="submit" class="btn btn-md btn-info btn-block" value="Update">
                    </div>
                </div>
            </form>

        </div>
        <!-- /.panel-body -->
    </div>
    <!-- /.panel -->
</div>
<div class="col-lg-12" style="position:relative">
                            <div class="panel panel-default">
                                <div class="panel-heading">
                                    <i class="fa fa-files-o fa-fw"></i> Add New Video
                                </div>
                                <!-- /.panel-heading -->
                                <div class="panel-body">
                                    <form role="form" id="VideoAdd">
                                        <div class="form-group">
                                            <div class="alert" style="display:none;" id="videoError">

                                            </div>
                                        </div>


                                        <div class="form-group">
                                            <div class="input-group">
                                                <span class="input-group-addon">
                                                    <i class="glyphicon glyphicon-star"></i>
                                                </span> 
                                                <input class="form-control" placeholder="Video Url" name="vurl" id="vurl" type="text" required>
                                            </div>
                                        </div>

                                        <div class="form-group">
                                            <div class="form-group">
                                                <input type="submit" id="videoSbmt" class="btn btn-md btn-info btn-block" value="Update">
                                            </div>
                                        </div>
                                    </form>

                                </div>
                                <!-- /.panel-body -->
                            </div>
                            <!-- /.panel -->
                        </div>

你的
e.preventDefault()//停止默认操作
应该是您要做的第一件事,而不是最后一件事。请记住,
$.ajax()
调用是异步的,因此在运行时,可能正在运行默认操作

$("#VideoAdd").submit(function(e)
{
    e.preventDefault(); //STOP default action
    var postData = $(this).serializeArray();
    var formURL = $(this).attr("action");
    $("#videoError").hide();

    $.ajax({
       url : formURL,
       type: "POST",
       cache: false,
       data : postData,
       success:function(data, textStatus, jqXHR) {
          if(data=="error_redirect") {
             window.location="login.php";
          }else if(data=="success"){
              $("#videoError").removeClass("alert-danger");
              $("#videoError").show();
              $("#videoError").addClass("alert-success");
              $("#videoError").html("Successfully Updated");
          } else {
              alert(data);
              $("#videoError").show();
              $("#videoError").addClass("alert-danger");
              $("#videoError").html("Error in updating");
          }
      },
      error: function(jqXHR, textStatus, errorThrown) {

      }
    });
});
使用.one()尝试此操作


你能检查一下控制台有多少post呼叫。如果你将
e.preventDefault()
移到顶部会怎么样?与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。请看“.顺便说一句,这是“提前感谢”,不是“提前感谢”。谢谢你的评论,但同样的问题。
$("#VideoAdd").submit(function(e)
{
    e.preventDefault(); //STOP default action
    var postData = $(this).serializeArray();
    var formURL = $(this).attr("action");
    $("#videoError").hide();

    $.ajax({
       url : formURL,
       type: "POST",
       cache: false,
       data : postData,
       success:function(data, textStatus, jqXHR) {
          if(data=="error_redirect") {
             window.location="login.php";
          }else if(data=="success"){
              $("#videoError").removeClass("alert-danger");
              $("#videoError").show();
              $("#videoError").addClass("alert-success");
              $("#videoError").html("Successfully Updated");
          } else {
              alert(data);
              $("#videoError").show();
              $("#videoError").addClass("alert-danger");
              $("#videoError").html("Error in updating");
          }
      },
      error: function(jqXHR, textStatus, errorThrown) {

      }
    });
});
$("#VideoAdd").one('submit'. function(e){

...
});