我正在尝试创建一个表格,其中每一行都是一个表格.我希望每个输入都在不同的表格中,但我仍然需要它,例如,所有第一个输入都属于同一个表头,依此类推.
我要做的是一个可编辑的网格,或多或少这个:
<table>
<tr>
<form method="GET" action="whatever">
<td><input type="text"/></td>
<td><input type="text"/></td>
</form>
</tr>
<tr>
<form method="GET" action="whatever">
<td><input type="text"/></td>
<td><input type="text"/></td>
</form>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但显然我无法以这种方式安排标签(或者w3c验证器所说的那样).
有什么好办法吗?
我经常发现自己想要创建一个表格表 - 一堆行,每行是一个单独的表单,有自己的字段和提交按钮.例如,这是一个宠物店应用示例 - 想象一下这是一个结账屏幕,您可以选择更新您选择的宠物的数量和属性,并在退房前保存您的更改:
Pet Quantity Color Variety Update
snake 4 black rattle update
puppy 3 pink dalmatian update
Run Code Online (Sandbox Code Playgroud)
我希望能够使用看起来像这样的HTML来做到这一点:
<table>
<thead><tr><th>Pet</th> <th>Quantity</th> <th>Color</th> <th>Variety</th> <th>Update</th></tr></thead>
<tbody>
<tr>
<form>
<td>snake<input type="hidden" name="cartitem" value="55"></td>
<td><input name="count" value=4/></td>
<td><select name="color"></select></td>
<td><select name="variety"></select></td>
<td><input type="submit"></td>
</form>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
这基本上是一个表格,每行一个表格.点击更新一次允许您更新该特定行(这不是一个真实的例子,我的真实应用程序确实需要行的独立性).
但这不是有效的HTML.根据规范,a <form>必须完全位于a <td>或完全位于a之外<table>.这个无效的html打破了javascript库,是一个巨大的痛苦处理.
我最终创建一个表来包含列标题,然后为每个表单创建一个表.但这需要固定的列宽,使输入排列整齐的列,这是低于标准的.你最终如何处理这个问题?我缺少一个明显的简单解决方案吗?如何制作表格表格?
我在页面上有一张桌子。表格的每一行中都有关于在线杂货送货订单的数据。在每一行的末尾,都有一个关于要对订单执行的操作的提交按钮,表单就此结束。新表格从下一行<tr>开始
我应该将<form>和</ form>标记放在哪里?我应该将<form>放在每个<tr>之前,还是将</ form>放在</ tr>之后,还是应该在每行的第一个数据单元<td>中引入它们,并在最后一个<td>中关闭它们?
我的意思是,该页面可能会同时以两种方式正常运行,但是执行此操作的“正确”方法是什么?现在,mozilla代码视图以红色显示表格标签。
这是我用来为每个表行动态生成新表格的php代码的相关部分。我仅出于参考目的而发布此内容,因为这根本不重要。我的问题是基于基本的HTML,而不是基于php。
for($i=0;$i<$count;++$i){
$res.='<form action="" method="post">' ."\n" .'<input type="hidden" name="orderid" value="' .$orders[$i]->idcode .'" />';
$res.="$nt<tr><td align=\"center\">" .$orders[$i]->display("pe","</td><td align=\"center\">") ."</td>$nt\t<td align=\"center\"><select name=\"agent\">$alistcode</select></td>$nt\t<td align=\"center\"><select name=\"vendor\">$vlistcode</select></td>";
$res.="$nt\t<td align=\"center\"><input type=\"submit\" value=\"PROCESS\" /></td>\n</tr>\n</form>\n";
}
$res.="</table>";
echo $res;
Run Code Online (Sandbox Code Playgroud)