php - PHP post 数组未完成。只收到第一个元素
问题描述
我需要将数组值从动态 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 )
仅检索到第一个元素。
请帮助我。
我有与上面完全相同的代码,但没有问题。很奇怪。
解决方案
所以你提供的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>
我已经对此进行了测试,并且可以正常工作
推荐阅读
- css - 如何使用在两个方向上渐变的渐变图像作为边框图像?
- sql - 如何在postgresql中获取列值的计数
- python-3.x - 为什么在 python 中使用重叠分布图
- javascript - 从 pdf 文件中读取注释
- image - 使用 tensorflow 从文件夹加载 png 文件并在解码前打印每个图像的名称
- javascript - 我如何在 Angular 应用程序中订阅/收听 chrome 推送通知
- php - 当用户在 Laravel 中未经授权时返回响应
- python - 使用 python 脚本为 linux 环境添加 $PATH
- javascript - 隐藏最后 3 列,仅当我们单击 + 数据表时才能看到它们
- sql - Iscontain 如何返回字符串