2015-11-23 118 views
0

我想使用ajax & php將值添加到數據庫。我有一個模式彈出窗口詢問用戶輸入,並在模態彈出有文本字段和提交按鈕。當用戶填充字段並點擊提交按鈕時,調用向數據庫添加值的ajax。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='[email protected]' 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(); 
      } 
     }); 
}); 

時,我打從數據中獲取添加兩次database.how我可以解決它彈出提交?

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"; 
} 

?> 
+0

你可以把你的php代碼嗎? –

+0

也許,您同時提交表單。 –

+0

顯示你的HTML標記也可能是你的表單也在提交。 – Manwal

回答

0

可能有以下任何情況

  1. 有與類重複產品的兩個元素。如果是這種情況,則使用id來綁定單擊事件

    $('#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(); 
     } 
    }); 

});