在PHP中访问html表数据


Access an html table data in PHP

如果在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.p pphp时,我如何访问表数据?

$dataList = $_POST['dataTable']; ???????

一个简单的解决方法是在所有单元格中添加隐藏字段:

<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'];

没有任何变通方法和转换,你不能。您可以做的是在提交之前用JavaScript将表转换为序列化数组,并在隐藏输入中设置结果。然后,您可以在PHP中读取该值并反序列化该数组,获取所有值。如果操作得当,您甚至可以遍历行和列。

你可以使用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元素的完整规格
包括head, TBODY…等

在google中使用主题作为关键字的第一个链接显示如下:http://wonshik.com/snippet/Convert-HTML-Table-into-a-PHP-Array

我相信你能适应你的问题。