Php 多次触发AJAX调用

Php 多次触发AJAX调用,php,jquery,ajax,Php,Jquery,Ajax,我有一个php应用程序将excel文件上传到服务器。我使用ajax将数据发送到服务器。但有时ajax调用会重复工作。我在按钮单击中调用了ajax函数 $(document).on("click", "#btnContinue", function() { $.ajax({ url: "ExcelColDesptn.php", data: data, type: 'post',

我有一个php应用程序将excel文件上传到服务器。我使用ajax将数据发送到服务器。但有时ajax调用会重复工作。我在按钮单击中调用了ajax函数

$(document).on("click", "#btnContinue", function() {
    $.ajax({
        url: "ExcelColDesptn.php",
        data: data,                           
        type: 'post',
        success: function(response) {}
    });
HTML:

继续
我用firebug来修复它,它显示


我不知道为什么会这样。这里调用了3次“ExcelColDesptn.php”,调用了4次“SaveExcelToServer.php”。有时它正好工作一次。有什么帮助吗?

您拥有的函数,该绑定是否在另一个函数中?哪个叫多次?因为这是一个活动绑定,这意味着即使内容更新,绑定也存在

因此,我预计:

  • 您可以使用ajax更新内容
  • #btnContinue位于由Ajax更新的HTML元素中
  • 您可以调用函数向按钮添加新绑定
  • 该按钮将获得额外的单击绑定
  • 因此,更新ajax的次数越多,执行上载的次数就越多。因为你绑定点击的方式
解决方案:

  • 将其设置为正常绑定
    $(“#btnConcontinue”)。在(“单击”,fn)
  • 仅将绑定放在DocumentReady中,而不是放在被多次调用的函数中
  • 在新绑定之前使用
    $(“#btnConcontinue”).off(“单击”)
    (这是最难看的解决方案)

  • 您拥有的函数,是另一个函数中的绑定吗?哪个叫多次?因为这是一个活动绑定,这意味着即使内容更新,绑定也存在

    因此,我预计:

    • 您可以使用ajax更新内容
    • #btnContinue位于由Ajax更新的HTML元素中
    • 您可以调用函数向按钮添加新绑定
    • 该按钮将获得额外的单击绑定
    • 因此,更新ajax的次数越多,执行上载的次数就越多。因为你绑定点击的方式
    解决方案:

  • 将其设置为正常绑定
    $(“#btnConcontinue”)。在(“单击”,fn)
  • 仅将绑定放在DocumentReady中,而不是放在被多次调用的函数中
  • 在新绑定之前使用
    $(“#btnConcontinue”).off(“单击”)
    (这是最难看的解决方案)

  • 你也可以发布你的HTML。是否有任何其他事件在该按钮上引发单击事件?能否显示
    btnContinue
    ?@RoryMcCrossan可能是绑定或订阅,您可以右=)继续。没有针对此事件触发其他事件button@Sherin看看其他浏览器中的firebug或开发者工具,有多少监听器被添加到文档中,并直接添加到该按钮或其父级。您是否也可以发布您的HTML。是否有任何其他事件在该按钮上引发单击事件?能否显示
    btnContinue
    ?@RoryMcCrossan可能是绑定或订阅,您可以右=)继续。没有针对此事件触发其他事件button@Sherin查看任何其他浏览器中的firebug或开发人员工具,有多少侦听器添加到文档中并直接添加到该按钮或其父级。ExcelColDesptn.php由ajax提供。但它的一次ExcelColDesptn.php由ajax提供。但这一次在opera浏览器中对我来说不起作用。当我选择option并点击enter按钮时,什么也没发生。对于firefox和chrome来说,它是有效的。当你点击回车键时,你的点击事件在opera浏览器中起作用了吗?这是opera浏览器版本问题。更新opera浏览器后,它工作正常。这在opera浏览器中对我不起作用。当我选择option并点击enter按钮时,什么也没发生。对于firefox和chrome来说,它是有效的。当你点击回车键时,你的点击事件在opera浏览器中起作用了吗?这是opera浏览器版本问题。更新opera浏览器后,它工作正常。
    <button id="btnContinue" name="btnContinue" class="btn btn-primary ">Continue </button> 
    
    please use your code like this
    
    $('#btnContinue').Click(function() {
        $.ajax({
            url: "ExcelColDesptn.php",
            data: data,                           
            type: 'post',
            success: function(response) {}
        });
    });