2013-07-13 150 views
3

我有一个PHP文件“popup_or_abbort.php”如果用户已经有请求,那么请求将被调用,并且db中的行将被删除的mysql_query。如果我第一次访问该页面并发送请求,它会发送一次请求。如果我再次提交,则会提出请求。如果我再次发送请求,而不更新页面,它会发送请求两次。请帮我解决这个问题。jQuery Ajax发送第二次提交两次,第三次提交三次

$(document).ready(function(){ 

    $("#request").click(function(){ 

     uid = "<?php echo $user_id; ?>";   
     pid = "<?php echo $p_id; ?>";   

     $.ajax ({ 
     type: "POST", 
     url: "inc/scripts/popup_or_abbort.php", 
     data: {"uid" : uid, "pid" : pid}, 
     success: function(data){ 
      if (data == "send_ok") {    

      $('#popup').fadeIn(300); 
      $('#sendbutton').click(function(){ 
       pn = "<?php echo $p_name; ?>"; 
       un = "<?php echo $username; ?>"; 
       oid = "<?php echo $p_owner_id; ?>"; 
       app = $('#application').val(); 

       $.ajax({ 
       type: "POST", 
       url: "inc/scripts/send_team_request.php", 
       data: {"uid" : uid, "pid" : pid, "pn" : pn, "un" : un, "oid" : oid, "app" : app}, 
       success: function(data){ 
        $('#request').html(data); 
        $('#application').val(""); 
        $('#popup').fadeOut(300); 

        return false;      
       } 
       });     
      }); 
      } 
      else { 
      $('#request').html(data); 
      return false; 
      } 
     }   
     }); 
    return false;    
    }); 
return false;   
}); 

回答

4

您在ajax回调中指定$('#sendbutton').click(function(){处理函数。每次执行ajax回调时,它都会分配新的(相同的)处理程序。所以,在#sendbutton点击 - 多个相同的Ajax请求正在执行。

而是委托了一次外Ajax调用:

$(document).on("click", "#sendbutton", function() { 
    ... 
}); 
+0

我设置的$(document低于$(文件)。在( “点击”, “#sendbutton” 功能()块)。就绪(函数()块,现在一切都很好。非常感谢你的帮助,你太棒了! –

+0

很高兴帮助:) – mishik

相关问题