Php 表单元素关闭过快
我有一个PHP脚本,它生成一个表,每一行(假定)都是一个表单。该表生成得非常好,但出于某种原因,表单标记会立即关闭。我不知道为什么,这让我暴躁。有什么想法吗Php 表单元素关闭过快,php,html,Php,Html,我有一个PHP脚本,它生成一个表,每一行(假定)都是一个表单。该表生成得非常好,但出于某种原因,表单标记会立即关闭。我不知道为什么,这让我暴躁。有什么想法吗 echo ' <form method="post" action="#" id="status_row_'.$row["name"].'"> <tr class="even"> <input type="hidden" name="category" id="category" value="
echo '
<form method="post" action="#" id="status_row_'.$row["name"].'">
<tr class="even">
<input type="hidden" name="category" id="category" value="'.$category[0]['category'].'">
<input type="hidden" name="error_level" id="error_level" value="'.$row['level'].'">
<input type="hidden" name="service_name" id="service_name" value="'.$row['name'].'">
<td class="status-icons" name="error_circle"><div class="'.$error_circle.'"></div></td>
//rows deleted here for clarity's sake
</tr></form>'
echo'
//为清晰起见,此处删除了行
'
因此,生成表单上的Inspect元素显示:
,后面是所有行。您的html被破坏。您试图在打开
后立即打开表单,然后在关闭
后将其关闭。这是非法的html<代码>结构不能像那样构建。它应该更像
<form>
<table>
<tr>
<td>...</td>
</tr>
</table>
</form>
...
实际上,您正试图将表单填充到
和
标记之间的空白中。除表结构外,不应存在任何内容:
<tr><p>hi there</p><td>go away</td></tr>
你好走开
如果是非法的,大多数浏览器将在表外呈现
,通常在打开
标记之前。这就是为什么您的表单会显示在它所在的位置-浏览器正试图尽最大努力处理损坏的html。看起来您在关闭
标记之前关闭了
标记。表单是否有所不同?或者以某种方式链接在一起(例如,是每一个表行都有自己独特的表单,还是一个巨大的表单,每一行都有不同的字段
如果是前者,则在每个行元素内创建一个表单,如下所示:
<table>
<tr>
<td><form>FORM STUFF GOES HERE</FORM></td>
</tr>
<tr>
<td><form>FORM STUFF GOES HERE</FORM></td>
</tr>
<tr>
<td><form>FORM STUFF GOES HERE</FORM></td>
</tr>
</table>
这里有表格
这里有表格
这里有表格
如果是后者,或者如果您只希望整体提交一个表单,则在表外创建表单标记,并在数据单元格内创建表单字段:
<form>
<table>
<tr>
<td>FORM FIELD E.G. TEXT FIELD</td>
</tr>
<tr>
<td>FORM FIELD E.G. TEXT FIELD</td>
</tr>
<tr>
<td>FORM FIELD E.G. TEXT FIELD</td>
</tr>
</table>
</form>
表单字段,例如文本字段
表单字段,例如文本字段
表单字段,例如文本字段
表单元素关闭不正确,因为正如一些人指出的那样,在
和
标记之间显然不能有
标记(我不明白为什么,但它就是这样)
我发现这个解决方案是一个解决方案:
您不允许在尝试的地方放置表单标记。在开始tr之后,唯一允许的标记是th或td。@Drew,您还需要在后面添加一个
,最好是一个
标记。@SableFoste确定,清除了该标记,并明确说明开始tr标记更新了代码,以将整个文档放在th中我需要生成多个表单,表的每一行一个。@Prix什么例子?我没有看到一个——我缺少它吗?每个表单都有一堆元素。我需要表的每一行都有一个表单。我移动了标记——这肯定是错的——但我需要表单位于表中。我这是不可能的?您可以在任何元素中放置表单。然后转到…
。每行都应该有自己的表单,字段由列定义。当用户更改一行(该行中的任何字段)中的数据时该行将仅更新该记录的数据库。好的,请尝试我发布的第一个代码示例,因为它可以满足您的需要。另一点是,您仍然可以对整个表使用单个表单来完成所需的操作,并且在“数据库/更新”部分,您可以进行一些事例/检查,以查看哪个表单被编辑。我看到了此解决方法。但是我无法让它工作。你到底做了什么?请你解释一下好吗?恐怕我不记得了,我也不再有访问该代码库的权限。你有没有可能只使用带有display:table
样式的div?很抱歉,我帮不了你什么忙。谢谢你的回复,我找到了方法。再次感谢:)