我正在为我的内部网创建发票网站。
我有以下代码用于在html中创建一个动态表行,该行生成的行数达到发票所需的数量。
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[1].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[1].cells[i].innerHTML;
//alert(newcell.childNodes);
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
}
}
}
通过表单插入数据后,我想通过php echo输出表数据。但是我无法弄清楚如何从动态表中输出每一行,因为现在它只给了我最后一行。
以下列方式我想输出数据:
echo $var_name."<br>";
现在我的表中每行有5个变量,但它们只给我最新的行输入(逻辑)
答案 0 :(得分:1)
您需要提供以[]
结尾的表单字段名称。提交表单时,PHP会将名称为name[]
的所有字段合并到$_POST['name']
中的数组中。然后,您可以遍历这些数组以获取表单的所有行。
表单应该类似于:
<form method="post" action="your URL">
<table>
<tr><td><input type="text" name="somename[]"></td>
<td><select name="somemenu[]">
<option value="">Please choose</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
...
</select></td>
</tr>
</table>
</form>
然后您的PHP可以:
foreach (array_keys($_POST['somename']) as $key) {
// Do something with $_POST['somename'][$key] and $_POST['somemenu'][$key]
}