PHP循环代码在前却先显示submit按钮?如何将按钮置于底部?
问题原因
你的问题出在HTML结构不符合规范:
<table>标签内只能包含<thead>、<tbody>、<tr>等表格相关元素,直接在<table>里的<form>中放置未包裹在<tr><td>内的<input>是无效的HTML结构。- 浏览器的HTML纠错机制会自动修正这种错误,把不符合表格结构的
<input>元素移到<table>外部,最终导致按钮显示在循环生成内容的前面。
解决方案
你需要把提交按钮放到表格的一个<tr>中,同时建议调整表单和表格的嵌套关系(表单包裹整个表格更符合规范),调整后的代码如下:
<form method='post'> <table> <?php $row=array( 'databaseName', 'tableName', 'nColumns', 'columnName', 'dataType', 'dataSize', 'null', 'indexing'); for($k=0; $k<=7; $k++){ ?> <tr><td><?php echo $row[$k]; ?></td> <td><input name='<?php echo $row[$k]; ?>' type='text'></input></td></tr> <?php if($k==2){ ?> <tr> <td>Number of Columns</td> <td><select onchange='nColumns()'> <?php for($i=1; $i<=12; $i++){ ?> <option id='<?php echo $i; ?>'><?php echo $i; ?></option> <?php } ?> </select></td></tr><?php } ?> <?php } ?> <!-- 把提交按钮放到表格的一行中 --> <tr> <td colspan="2"><input name='submit' type='submit'></input></td> </tr> </table> </form>
关键修改点:
- 将
<form>标签移到<table>外面,符合表单包裹表单元素的规范(表格作为表单的一部分)。 - 给提交按钮添加一个单独的
<tr>,并用colspan="2"让按钮所在单元格跨两列,排版更美观。 - 确保所有表单元素都在表格的合法结构内,避免浏览器自动纠错导致的布局混乱。
内容的提问来源于stack exchange,提问作者kenkurt135
相关产品推荐
相关产品推荐

