我需要将数组值从动态html表发布到PHP。 请参考以下示例:
<!----index.html----->
<script>
function addRow(tableID){
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
}
}
</script>
<form role="form" action="php_process.php" method="POST">
<table id="this_table">
<tr>
<td><input type="number" id="data_number" name="data_number[]"></td>
</tr>
</table>
<input type="button" value="Add" onclick="addRow('this_table');">
<button type="submit" value="1">Save</button>
</form>
<!----php_process.php---->
<?php
$data_submit = $_POST['btn_submit'];
$data_number = $_POST['data_number'];
if($data_submit){
var_dump($data_number);
exit();
}
?>
当我提交此表单时,即使我添加了多行,也仅显示数组的第一个元素。
Output:
Array ( [0] => 2 )
仅检索到第一个元素。
请帮助我。
我具有与上面完全相同的代码,但是没有问题。很奇怪。
答案 0 :(得分:-1)
替换此按钮
<button type="submit" value="1">Save</button>
与此一起
<button type="submit" name="btn_submit" value="1">Save</button>
如果您已经在此页面中将此名称定义为其他提交按钮,则更改此名称并检查data_number此名称,它们不应在同一页面中重复
答案 1 :(得分:-1)
因此,您提供的javascript代码不起作用。但是,以下修改确实可以使其正常工作。
我已经设置了rowCount变量,并且colCount使用零索引而不是1,因为您试图获取不存在的行的单元格长度,因此在创建新元素时没有innerHTML。如果确实需要使用[1],因为您的实际表中有多余的行,请向我们显示实际的相关代码,以便我们提供帮助
<?php
var_dump($_POST);
?>
<!----index.html----->
<script>
function addRow(tableID){
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
}
}
</script>
<form role="form" action="php_process.php" method="POST">
<table id="this_table">
<tr>
<td><input type="number" id="data_number" name="data_number[]"></td>
</tr>
</table>
<input type="button" value="Add" onclick="addRow('this_table');">
<button type="submit" name="btn_submit" value="1">Save</button>
</form>
我已经对此进行了测试