gpt4 book ai didi

php - jquery post与$.ajax,如何避免多次发布?

转载 作者:行者123 更新时间:2023-12-01 04:59:55 25 4
gpt4 key购买 nike

仍在寻找解决方案,但尚未找到,我有一个功能可以管理相同/不同页面上的不同表单

function formStantardAction(correctAnswer,addCustomData){
addCustomData = (typeof addCustomData == "undefined")?'':addCustomData;
correctAnswer = (typeof correctAnswer == "undefined")?'Saved.':correctAnswer;
$('form.standard').submit(function(event){
event.preventDefault();
var modalWin = $(this).parent();
var values = $('form.standard').serialize() + addCustomData;
$.ajax({
url: "inc/gateway.php",
data: values,
type: "POST",
success: function(data){
if (data == "OK"){
$(modalWin).html(correctAnswer).delay(500).fadeOut(500);
setTimeout(function() {
mw_close();
}, 1000);
}else{
alert(data);
}
}
});

});
}

加载页面和表单后,输入类型为“button”,名为“SEND”

$('form.standard [name="SEND"]').click(function(){
var str = $('#sortableTo').serializelist();
formStantardAction('New train inserted.',str);
$('form.standard').submit();
});

所有值通过 POST 到达 php 页面,该页面完成所有操作(验证、插入数据库、更新日志...),如果一切正常,则回答“确定”(因此模式窗口中的表单替换为自定义消息并淡出)或者...如果出现错误,php 会用一些文本进行回答,js 会弹出一个警报,使模态窗口与表单保持打开状态。

一切都好,但是,如果 php 回答错误,则第二次单击“发送”按钮时,帖子会发送两次。如果我在第二次发送时再次出错,并再次单击发送按钮,则发布值将发送三次......依此类推。

我能做什么?我的错误在哪里?

谢谢。

最佳答案

尝试排除提交 block :

 function formStantardAction(correctAnswer,addCustomData){
addCustomData = (typeof addCustomData == "undefined")?'':addCustomData;
correctAnswer = (typeof correctAnswer == "undefined")?'Saved.':correctAnswer;
//$('form.standard').submit(function(event){
// event.preventDefault();
//change 'this' to form.standard
var modalWin = $('form.standard').parent();
var values = $('form.standard').serialize() + addCustomData;
$.ajax({
url: "inc/gateway.php",
data: values,
type: "POST",
success: function(data){
if (data == "OK"){
$(modalWin).html(correctAnswer).delay(500).fadeOut(500);
setTimeout(function() {
mw_close();
}, 1000);
}else{
alert(data);
}
}
});

});
// }

加载页面后:

   $('form.standard [name="SEND"]').click(function(){
var str = $('#sortableTo').serializelist();
formStantardAction('New train inserted.',str);
//excluding submit event
// $('form.standard').submit();
});

因为类型为“Post”的 $.ajax {} 已经是一个提交过程,然后当脚本调用提交时它会重新提交。

希望这是正确的并有帮助

关于php - jquery post与$.ajax,如何避免多次发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11116908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com