Javascript ajaxSubmit:数据库中的重复条目
我有一个表单和一个输入类型文件在里面Javascript ajaxSubmit:数据库中的重复条目,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个表单和一个输入类型文件在里面 <form id='imageform' method='post' enctype='multipart/form-data' action='php/exec/add-message-image-exec.php' style='clear:both'> <div id='imageloadstatus' style='display:none'><img src='assets/loader.gif' alt='U
<form id='imageform' method='post' enctype='multipart/form-data' action='php/exec/add-message-image-exec.php' style='clear:both'>
<div id='imageloadstatus' style='display:none'><img src='assets/loader.gif' alt='Uploading....'/></div>
<div id='imageloadbutton'>
<div class='file-field input-field'>
<div class='btn'>
<span>Upload</span>
<input type='file' name='file' id='photoimg'/>
</div>
<div class='file-path-wrapper'>
<input class='file-path validate' type='text'>
</div>
</div>
</div>
</form>
我的问题是,它提交了两次图像,并将其保存到我的数据库/表中两次。但是当我删除
.submit()代码>在我的脚本中,它只执行一次,但每当我附加图像/提交时,会出现一个类似于模式的小窗口和另一个屏幕。删除“操作”并将其放在ajax POST请求中
$(document).ready(function () {
$('#photoimg').on('change', function () {
var A = $('#imageloadstatus');
var B = $('#imageloadbutton');
$.ajax({
url: 'php/exec/add-message-image-exec.php',
type: 'POST',
data: $('#imageform').serialize(),
beforeSubmit: function () {
A.show();
B.hide();
},
success: function (data) {
//do something with data
//ex: console.log()
console.log(data);
A.hide();
B.show();
},
error: function () {
A.hide();
B.show();
}
});
});
});
出现什么样的窗口?你能显示屏幕截图吗?可能是你的ajax正在提交,然后表单也在提交。在表单上,您可以尝试删除action=
并添加onsubmit=“return false;”
以进行检查……这是我删除.submit()时的示例图像;在脚本上,以及在删除操作和添加onsubmit='return false;'在形式上。它表示在属性列表数据:$('imageform').serialize()之后的SyntaxError:missing};当我删除序列化末尾的分号时,刷新页面后没有错误,但在提交图像时没有错误。它显示了$(…)。Ajax不是一个函数。@重复此操作,请考虑按选中的按钮作为一个可接受的答案。致以最良好的祝愿:)
$(document).ready(function () {
$('#photoimg').on('change', function () {
var A = $('#imageloadstatus');
var B = $('#imageloadbutton');
$.ajax({
url: 'php/exec/add-message-image-exec.php',
type: 'POST',
data: $('#imageform').serialize(),
beforeSubmit: function () {
A.show();
B.hide();
},
success: function (data) {
//do something with data
//ex: console.log()
console.log(data);
A.hide();
B.show();
},
error: function () {
A.hide();
B.show();
}
});
});
});