PHP 表格和 Ajax 我的表格添加了两次 post
PHP form and Ajax My form add the post two times
您好,我使用 Ajax 创建了一个表单,但是每当我单击提交按钮时 ajax 都会发送两次数据。我使用 var postData = null; 但 ajax 没有用。但是如果我只使用 PHP 我的表格工作正常。但我需要 ajax :)
normal_form.js
$(function() {
$("#form-msg").hide() ;
$("#simple-post").click(function()
{
$("#ajaxform").submit(function(e)
{
$("#form-msg").html("<div class='preloader'></div>");
var postData = $("#ajaxform").serializeArray();
var formURL = $("#ajaxform").attr("action");
$.ajax(
{
url : formURL,
type: "POST",
data : postData,
cache:false,
success:function(data)
{
if($("#ajaxform").attr("data-rel") == "reset"){
document.getElementById("ajaxform").reset();
$("#form-msg").show(300) ;
$("#form-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>');
$("body").click( function() { $("#form-msg").hide(400); });
}
else{
$("#form-msg").show(300) ;
$("#form-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>');
$("body").click( function() { $("#form-msg").hide(400); });
}
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#form-msg").fadeIn(300) ;
$("#form-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
$("#form-msg").click( function() { $(this).slideToggle(); });
$("body").click( function() { $("#form-msg").fadeOut(500); });
$("#form-msg").fadeOut(8000) ;
}
});
e.preventDefault(); //STOP default action
e.unbind();
});
$("#ajaxform").submit(); //I'm supposed to delete it.
});
});
Ps。你看,我的英语不好。 :)
最明显的第一件事是您提交了两次表单:
$("#ajaxform").submit(function(e) //5th line from the top
...和:
$("#ajaxform").submit(); //SUBMIT FORM
是的,毫无疑问。您的整个代码示例可以简化为:
$("#ajaxform").submit('a bunch of stuff you are doing here');
$("#ajaxform").submit();
拿出最后一个 $("#ajaxform").submit();
看看会发生什么。
您好,我使用 Ajax 创建了一个表单,但是每当我单击提交按钮时 ajax 都会发送两次数据。我使用 var postData = null; 但 ajax 没有用。但是如果我只使用 PHP 我的表格工作正常。但我需要 ajax :)
normal_form.js
$(function() {
$("#form-msg").hide() ;
$("#simple-post").click(function()
{
$("#ajaxform").submit(function(e)
{
$("#form-msg").html("<div class='preloader'></div>");
var postData = $("#ajaxform").serializeArray();
var formURL = $("#ajaxform").attr("action");
$.ajax(
{
url : formURL,
type: "POST",
data : postData,
cache:false,
success:function(data)
{
if($("#ajaxform").attr("data-rel") == "reset"){
document.getElementById("ajaxform").reset();
$("#form-msg").show(300) ;
$("#form-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>');
$("body").click( function() { $("#form-msg").hide(400); });
}
else{
$("#form-msg").show(300) ;
$("#form-msg").html('<pre><code class="prettyprint">'+data+'</code></pre>');
$("body").click( function() { $("#form-msg").hide(400); });
}
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#form-msg").fadeIn(300) ;
$("#form-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
$("#form-msg").click( function() { $(this).slideToggle(); });
$("body").click( function() { $("#form-msg").fadeOut(500); });
$("#form-msg").fadeOut(8000) ;
}
});
e.preventDefault(); //STOP default action
e.unbind();
});
$("#ajaxform").submit(); //I'm supposed to delete it.
});
});
Ps。你看,我的英语不好。 :)
最明显的第一件事是您提交了两次表单:
$("#ajaxform").submit(function(e) //5th line from the top
...和:
$("#ajaxform").submit(); //SUBMIT FORM
是的,毫无疑问。您的整个代码示例可以简化为:
$("#ajaxform").submit('a bunch of stuff you are doing here');
$("#ajaxform").submit();
拿出最后一个 $("#ajaxform").submit();
看看会发生什么。