[英]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";
}
?>
可能存在以下任何情况
类重复产品有两个要素。 如果是这种情况,请使用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.