繁体   English   中英

AJAX被调用两次

[英]AJAX getting called twice

我正在尝试使用ajax和php向数据库添加值。 我有一个模式弹出窗口,要求用户输入,并且在模式弹出窗口中有文本字段和提交按钮。 当用户填写字段并单击“提交”按钮时,将调用ajax,它将为数据库添加值。

$('.dup-product').click(function(){    
    var owners = $(".total_product_owner").val();
        $(".getmailfields").empty();
        if(owners == 0){
            $(".getmailfields").empty();
        } else {
            for (i = 1; i <= owners; i++) {        
                $(".getmailfields").append("<div class='form-group email_forms'><label class='control-label col-sm-2' for=invite-"+i+">Member "+i+" email</label><div class='albox col-sm-10'><input type='email' class='form-control' name='invitefriends[]' placeholder='sam@unclejohn.com' required></div></div>");
            }
        }
});

下面的代码是模式弹出窗口的操作

$('.duplicate_product').click(function(){
    var prodid = $(this).attr('pid');
    var userid = $(this).attr('oid');  
    $.ajax({
        type : "post",
        url : "user.php",
        data: { 
                product_id: prodid,
                user_id: userid,
             },
        cache:false,
        success : function(html){
              location.reload();
            }
        });
});

当我从弹出窗口中点击提交时,数据被两次添加到数据库中。我该如何解决呢?

的PHP:

<?php   
$pid = $_POST['product_id']; 
$uid = $_POST['user_id'];

if (isset($pid) && !empty($uid)){  
    duplicate($pid,$uid);
} else {   
    echo "Are you trying to do something nasty??";
}

duplicate($pid,$uid){
 echo "Duplicated";
}

?>

可能存在以下任何情况

  1. 类重复产品有两个要素。 如果是这种情况,请使用ID绑定click事件

     $('#duplicate_product').click(function(){ var prodid = $(this).attr('pid'); var userid = $(this).attr('oid'); $.ajax({ type : "post", url : "user.php", data: { product_id: prodid, user_id: userid, }, cache:false, success : function(html){ location.reload(); } }); 

    });

然后将id="duplicate_product"放在按钮2上。事件一次又一次地绑定到按钮。 在这种情况下,请使用以下代码

$('.duplicate_product').unbind('click').bind('click', function(){
var prodid = $(this).attr('pid');
var userid = $(this).attr('oid');  
$.ajax({
    type : "post",
    url : "user.php",
    data: { 
            product_id: prodid,
            user_id: userid,
         },
    cache:false,
    success : function(html){
          location.reload();
        }
    });

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM