【问题标题】:inputs in form created with foreach in PHP, how to pass all input values with post method?在 PHP 中使用 foreach 创建的表单中的输入,如何使用 post 方法传递所有输入值?
【发布时间】:2020-03-23 08:03:00
【问题描述】:

我创建了一个表单,其中我的输入由 foreach 循环创建,数据来自 mysql 数据库。

当使用 post 方法提交表单时,我希望能够通过 $_POST 接收所有信息,但目前我只接收来自 foreach 循环中最后创建的输入的信息。 变量$fishes来自mysql数据库,包含8行,所以foreach循环了8次。

我的目标是将这些数据插入到数据库表中,以便我可以回忆它。 当我在按下提交后运行 XDebug 时,我的 $_POST 包含操作:insertFish 和数量:(来自 foreach 中最后一次迭代的输入的值)。

我也希望能够看到对应数量的标签。我认为通过添加标签会起作用,但它没有。

我的表格:

<form class="fishadd__form" action="index.php?page=fishtanks&id= <?php echo $_SESSION['tank_id']; ?>" method="post">
<input type="hidden" name="action" value="insertFish">
<div class="fishadd__box--wrapper">

<?php foreach($fishes as $fish): ?>
  <div class="fishadd__box">
    <h2 class="fish__name"><?php echo $fish ['name']?></h2>
    <img class="fish__picture" src="../src/assets/img/goldfish.svg" alt="Goldfish" width="125">
    <div class="item__counter">
      <div class="fishadd__bottom">
      <button class="minus__button">-</button>
      <label for="quantity" name="<?php echo $fish['name']?>">
      <input class="fishadd__input" type="number" name="quantity" min="0" value="0">
      </label>
      <button class="plus__button">+</button>
      </div>
    </div>
  </div>
<?php endforeach; ?>
 </div>
 <button type="submit" class="add__fish" value="submit">add to tank</button>
 </form>

【问题讨论】:

  • 您是否尝试在输入字段中添加动态名称?
  • 每个输入的名称必须是唯一的或数组,否则你会遇到很多冲突。
  • 我将尝试使用数据库中的名称作为输入的名称,就像我对标签所做的那样
  • 输入字段的唯一名称是修复!谢谢!

标签: php html session


【解决方案1】:

感谢 cmets,输入字段的唯一名称 得到了解决。我用一个在 foreach 内循环的数组解决了它:

&lt;input class="fishadd__input" type="number" name="&lt;?php echo $fish['name']?&gt;" min="0" value="0"&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    相关资源
    最近更新 更多