我有一個使用ajax提交的表單,但是由於某種原因,如果您更改值並重新提交,那麼它會插入2個重複行,再次提交,然後插入3個重複行時間等等......某處存儲數字,但是對於ajax而言,我並不是100%確定我應該或不應該添加的東西。下面的代碼:Ajax表單遞交遞增時間
$(document).on('submit', '#add-badge-form', function(e)
{
e.preventDefault();
var data = $(this).serialize();
$.ajax({
type : 'POST',
url : 'submit.php',
data : data,
success : function(data)
{
$(".add-badge-result").fadeIn(500).show(function()
{
$(".add-badge-result").html(data);
});
$('#add-badge-form').trigger("reset");
}
});
return false;
});
編輯:處理表單的PHP:
如果($ _ POST [ '形名'] == '添加徽章'){
$name = $_POST['name'];
$description = $_POST['description'];
$level = $_POST['level'];
$result = mysqli_query($con,"INSERT INTO Badges (Name,Description,Level) VALUES ('$name','$description','$level')") or die(mysql_error());
mysqli_close($con);
if($result)
{
echo $name." added successfully.";
}
else
{
echo "Error adding ".$name.".";
}
更新:
我現在發現,這隻發生在您更改頁面(也使用ajax)之後。所以如果你插入一個表單,然後再次插入而不離開頁面,它可以正常工作。如果您插入,然後更改頁面,然後返回並再次插入,它會插入一個副本。下面是我如何改變頁面:
$(".button").click(function(){
$(".nav li ul a").removeClass("current");
if (this.id == "add-badge") {
$("#rightContainer").load("add-badge.php");
$(this).addClass("current");
} else if (this.id == "edit-badge") {
$("#rightContainer").load("edit-badges.php");
$(this).addClass("current");
} else if (this.id == "award-badge") {
$("#rightContainer").load("award-badge.php");
$(this).addClass("current");
}
});
我該如何着手在submit.php上接收這些值?我嘗試了幾種方法,但似乎無法從中得到任何結果。 – BN83
在我的例子中,你將在你的PHP中擁有'$ _POST [「field1」]' – Vuldo
在看到這個之前剛開始工作,我忘記了傳遞表單名稱...我仍然得到重複的字段。 – BN83