我在HTML文件中有这段PHP代码,需要使用这些表单更新数据库的表格。
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo '<img class="plan1" id="'.$row["imageID"].'" style="position:absolute; top:'.$row["top"].'px; left:'.$row["left"].'px;" src="'.$row["url"].'" width="'.$row["width"].'" height="'.$row["height"].'" />';
echo '<form action="saveimage3.php" method="post" id="form1">';
echo '<input type="hidden" name="planid" value="'.$row["planID"].'"/>';
echo '<input type="hidden" name="version" value="1'.$row["version"].'"/>';
echo '<input type="hidden" name="imageid" value="'.$row["imageID"].'"/>';
echo '<input type="hidden" name="url" value="'.$row["url"].'"/>';
echo '<input type="hidden" name="left" id="l'.$row["imageID"].'" value="'.$row["left"].'"/>';
echo '<input type="hidden" name="top" id="t'.$row["imageID"].'" value="'.$row["top"].'"/>';
echo '<input type="hidden" name="width" id="w'.$row["imageID"].'" value="'.$row["width"].'"/>';
echo '<input type="hidden" name="height" id="h'.$row["imageID"].'" value="'.$row["height"].'"/>';
echo '</form>';
}
}
这将根据来自数据库的数据创建多个表格。
我有这个ajax代码将所有表格提交到php文件。
<script>
function validate(form){
//get form id
var formID = form.id;
var formDetails = $('#'+formID);
$.ajax({
type: "POST",
url: 'saveimage3.php',
data: formDetails.serialize(),
success: function (data) {
// log result
console.log(data);
//for closing popup
location.reload();
window.close()
},
error: function(jqXHR, text, error){
// Displaying if there are any errors
console.log(error);
}
});
return false;
}
//this function will create loop for all forms in page
function submitAll(){
for(var i=0, n=document.forms.length; i<n; i++){
validate(document.forms[i]);
}
}
</script>
我有一个按钮。
<button onclick="submitAll()">Save Version</button>
通过这样提交,数据库只更新第一个表单数据。其他表单没有向php文件发送数据。如何将所有表单都发送到php文件中?
var formDetails = $('#'+formID);
这行代码会导致validate()函数始终发送第一个表单的数据,无论如何。 - user2187var formID = form.id; var formDetails = $('#'+formID);
替换为var formDetails = $(form);
。如果您已经在参数中拥有它,重新查询元素是相当糟糕的。然而,使用唯一的表单ID应该足以让它正常工作。我仍然建议解决location.reload()问题。 - user2187