如果我在html表单中有这样的表格,
<form method="POST" action="a.php">
<table name="dataTable">
<tr>
<td>row one col one</td>
<td>row one col two</td>
<td>row one col three</td>
</tr>
<tr>
<td>row two col one</td>
<td>row two col one</td>
<td>row two col one</td>
</tr>
</table>
</form>
当表单提交到p.php时,如何访问表数据?
$dataList = $_POST['dataTable']; ???????
答案 0 :(得分:3)
直接的解决方法是为所有单元格添加隐藏字段:
<form method="POST" action="a.php">
<table name="dataTable">
<tr>
<td>row one col one<input type="hidden" name="row_one_cell_one" value="row one col one" /></td>
<td>row one col two<input type="hidden" name="row_one_cell_two" value="row one col two" /></td>
etc...
它保持视图不变,但您可以使用以下简单代码访问php脚本中的单元格:
$cellData = $_POST['row_one_cell_one'];
答案 1 :(得分:1)
没有任何变通办法和转换,你不能。 您可以做的是使用JavaScript在序列化数组中转换表,然后再提交隐藏输入并将结果设置为隐藏输入。然后你可以读取PHP中的值并反序列化数组,获取所有值。如果你做得对,你甚至可以迭代行和列。
答案 2 :(得分:1)
您可以使用JavaScript来呈现表DOM,
并在提交之前将其设置为隐藏字段,
因此,PHP能够解释是$_POST
<form method="post" onSubmit="set_value()">
<table name="dataTable">
...
</table>
<input type="hidden" value="" id="hidden_table" name="hidden_table" />
</form>
<script>
function set_value()
{
var obj = document.getElementById("hidden_table");
var tbl = document.getElementsByName("dataTable")[1]
obj.value = tbl.innerHTML;
}
</script>
但是,使用JavaScript DOM时,它将返回TABLE元素的完整规范
包括THEAD,TBODY ......等
答案 3 :(得分:0)
在Google中使用主题作为关键字的第一个链接显示了这个:http://wonshik.com/snippet/Convert-HTML-Table-into-a-PHP-Array
我相信你可以适应你的问题。