所以我是PHP的新手,我正在尝试创建一个类似电子表格的程序。我有一个包含列和单元格的表单,用户可以添加和删除行(使用Javascript)。输入单元格中的数据后,用户可以保存工作表,数据显示在相同的单元格中。我已经能够使这个工作,但我必须手动检查每个输入并将数据放入变量,然后在单元格中显示该变量。我正试图找到一种方法来自动从单元格中获取所有数据,并将每个数据存储到一个带有递增id的变量中。问题是,我希望用户能够添加带有无限单元格的无限行;那么如果我不知道会有多少个细胞,我怎样才能获得所有数据呢?
我不知道我是否正确地走这条路,所以我希望有人至少可以指出我正确的方向。就像我说的,我是PHP的新手所以我可能完全无知并且想到这完全错了。
注意:我不是在寻找复制/粘贴答案,而是更多关于完成此事的理论的指导。当然,计划是最终将所有输入的数据存储到MySQL表中,然后从那里将其显示在屏幕上;但是,我首先尝试解决这个问题。
这是我到目前为止所做的:
PHP
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$a1_post = $_POST['a1'];
$a2_post = $_POST['a2'];
$a3_post = $_POST['a3'];
$b1_post = $_POST['b1'];
$b2_post = $_POST['b2'];
$b3_post = $_POST['b3'];
}
HTML
<form class="table-form" method="post" action="">
<div class="column" id="column-a">
<p>Antigen</p>
<input class="cell" id="a1" type="text" name="a1" value="<?php echo $a1_post; ?>">
<input class="cell" id="a2" type="text" name="a2" value="<?php echo $a2_post; ?>">
<input class="cell" id="a3" type="text" name="a3" value="<?php echo $a3_post; ?>">
</div>
<div class="column" id="column-b">
<p>Start Size</p>
<input class="cell" id="b1" type="text" name="b1" value="<?php echo $b1_post; ?>">
<input class="cell" id="b2" type="text" name="b2" value="<?php echo $b2_post; ?>">
<input class="cell" id="b3" type="text" name="b3" value="<?php echo $b3_post; ?>">
</div>
<input class="submit" type="submit" value="Save">
</form>
答案 0 :(得分:0)
只要您使用命名约定,您就可以迭代$_POST
并根据需要更新您的表格...
为简化此过程,请使用方括号命名输入:
<input class="cell" id="c1" type="text" name="c[0]" value="<?php echo $c[0]; ?>" />
<input class="cell" id="c2" type="text" name="c[1]" value="<?php echo $c[1]" />
提交数据时,每行数据已经是一个数组:
$ _ POST等于
[
'c' => ['c1 value', 'c2 value']
];
因此,您可以通过迭代$ _POST来与您的数据集进行交互:
foreach ($_POST as $rowName => $row) {
//$row equals ['c1 value', 'c2 value']
}