如果输入有值,请将其添加到php中的变量?

时间:2017-10-23 21:03:14

标签: javascript php mysql

所以我是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>

1 个答案:

答案 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']
}