【问题标题】:Input Type Hidden Fields in a foreach loopforeach 循环中的输入类型隐藏字段
【发布时间】:2012-03-16 04:27:10
【问题描述】:

我正在尝试添加提交按钮和隐藏的输入字段,以便当用户单击提交按钮时,我可以识别他们选择的项目。虽然我不知道如何访问隐藏的值。我有这个代码(输入类型=“隐藏”中的值是项目的 ID)。如何访问这些值?

foreach($dbh->query("SELECT * FROM beer WHERE country_id = $countryID") as $beer) {
    echo "<a href='BeerSummary.php?beerID=$beer[id]'>$beer[2]</a> <br/>";
    echo "ABV $beer[3]% - $beer[4] ml - Case Size $beer[5] - Price £$beer[6]";
    echo '<input type="submit" value="Add to Cart"> <br/>';
    echo '<input type="hidden" name="beer_id[]" value="'.$beer[0].'">';
    echo "<br/>";

}

if(isset($_POST["beer_id"])) {
//
}

【问题讨论】:

  • 您是否使用表单或链接来提交数据?我看不到表单标签,只有一个锚标签。
  • 标签在我的代码中,没有包含它,因为这只是我代码的一小部分遇到麻烦
  • 每个元素的 FORM 标记是在循环外还是在循环内?
  • 在外面,哦,我知道这是怎么回事 - 把它放在里面?
  • 是的。然后你会得到一篇帖子,其中只包含你想添加到购物车的内容。

标签: php types input foreach hidden


【解决方案1】:

对于每个隐藏字段,取 id。 id = hidden + $beer[i] 然后您可以使用document.getElementById("hidden" + $beer[i])轻松访问隐藏字段

这将在 javascript 中工作。

如果你想在 php 中做同样的事情,@Ben 的回答应该可以。

【讨论】:

  • 感谢您的帮助,不过我会坚持使用 PHP :)
【解决方案2】:

您将它们定义为输入数组,因此访问它/它们的方法是:

foreach($_POST['beer_id'] as $value)
{
    echo $value;
}

【讨论】:

  • 嗯,虽然这给了我所有的价值,而不是用户提交的价值——还有其他方式吗?
  • 如果您将所有这些都放在一个表单中,那么它们都会被提交。如果你想一次做一个,最好的方法是将每个拆分成一个迷你形式,然后从输入中取出数组。
  • 啊,我明白了,谢谢。最好有几个迷你表单或使用某种变量计数器作为每个隐藏输入的名称并使用多个 if isset 语句来检查哪些已提交并以这种方式获取值?
  • 如果您一次只做一个 - 我会坚持使用单独的表格。如果你一次做不止一个,我会使用 jQuery 将逗号分隔的数组填充到一个隐藏元素中,然后在发布后将其分解为一个数组。
  • 我一次做一个,所以我会坚持几种形式,干杯!
猜你喜欢
  • 2019-06-17
  • 2012-10-30
  • 1970-01-01
  • 2022-01-08
  • 2016-03-21
  • 2019-05-12
  • 2013-03-16
  • 2017-02-13
  • 1970-01-01
相关资源
最近更新 更多