的同级兄弟节点插入 DOM。这正是您在浏览器开发者工具中看到的异常结构:<div class="changecat">
<form id="changecatform" ...></form> <!-- 空form! -->
<label for="..."><i>×</i></label>
<p>Enter new name:</p>
<input type="text" value="Clothing">
<button>Save Changes</button>
</div>
✅ 正确做法:所有表单控件必须位于合法的表格单元格内
将编辑表单嵌入表格,应使用
包裹整个可交互区域(含触发控件和隐藏表单),并确保结构层级清晰:<table border="1">
<thead>
<tr>
<th>Category ID</th>
<th>Category Name</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
require("../PHP/connection.php");
$select = "SELECT * FROM category_details";
$result = mysqli_query($con, $select);
if ($result && mysqli_num_rows($result) > 0) {
while ($row = $result->fetch_assoc()) {
$id = htmlspecialchars($row["category_id"]);
$catname = htmlspecialchars($row["category_name"]);
$formId = 'changecatform_' . $id; // 唯一ID,避免重复
?>
<tr>
<td><?= $id ?></td>
<td><?= $catname ?></td>
<td>
<!-- 编辑触发区:图标 + 隐藏表单 -->
<div class="edit-trigger">
<i class="fa fa-edit" style="color:green; cursor:pointer;"
onclick="toggleEditForm('<?= $formId ?>')"></i>
<!-- 表单严格置于<td>内,且每个表单ID唯一 -->
<div class="changecat" id="changecat_<?= $id ?>">
<form id="<?= $formId ?>" action="../HTML/AdminPanelChange.php" method="POST">
<input type="hidden" name="category_id" value="<?= $id ?>">
<label><i class="fas fa-times" onclick="toggleEditForm('<?= $formId ?>')"></i></label>
<p>Enter new name:</p>
<input type="text" name="new_name" value="<?= $catname ?>" required>
<button type="submit" name="changecatbutton">Save Changes</button>
</form>
</div>
</div>
</td>
</tr>
<?php
}
} else {
echo "<tr><td colspan='3'>No Categories in Database</td></tr>";
}
?>
</tbody>
</table>? 对应的 JavaScript(支持多行独立表单): function toggleEditForm(formId) {
const formContainer = document.getElementById('changecat_' + formId.split('_')[1]);
if (formContainer) {
formContainer.style.display =
formContainer.style.display === 'block' ? 'none' : 'block';
}
}? CSS 优化建议(移除 position: absolute 避免布局错乱): .changecat {
display: none;
margin-top: 8px;
padding: 12px;
background: #fff;
border: 1px solid #ddd;
border-radius: 4px;
box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.changecat form {
margin: 0;
}⚠️ 关键注意事项: |