【发布时间】:2021-04-25 01:32:45
【问题描述】:
我有多个表单可以将数据发送到数据库。一个在循环内创建,一个在循环外。我已经使用 AJAX 将该数据发送到数据库。
在循环外的表单中,AJAX正常工作,无需刷新页面即可将数据发送到数据库。但是在循环内的表单中,我只能发送一次数据。第二次刷新页面。
这是循环外的第一种形式:
<!-- main from for post data out the loop -->
<form id="PostFormData" method="post" enctype="multipart/form-data">
<input type="file" name="image[]">
<input type="text" name="Post">
<button>done</button>
</form>
这是此表单的 AJAX 代码
$("form#PostFormdata").submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: 'Post/sendPost.php',
type: 'POST',
data: formData,
success: function(data) {
document.getElementById("ajaxPost").innerHTML = data;
},
cache: false,
contentType: false,
processData: false
});
});
这是循环内的第二种形式
<!-- form inside the loop for comment data -->
<?php for ($i = 0; $i < 1000; $i++) { ?>
<form id="CommentFormData" method="post" enctype="multipart/form-data">
<input type="file" name="commentImage">
<input type="text" name="commentValue">
<button>done</button>
</form>
<?php } ?>
这是循环表单的 AJAX 代码
$("form#CommentFormData").submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: 'Post/sendComment.php',
type: 'POST',
data: formData,
success: function(data) {
document.getElementById("InsidePost").innerHTML = data;
},
cache: false,
contentType: false,
processData: false
});
});
【问题讨论】:
-
您不能拥有多个具有相同 ID 的表单(或任何其他 html 元素)。 JavaScript 无法区分它们。它只会找到第一个。改用类
标签: php html jquery mysql ajax