php - Foreach 来自表单的 POST 值

标签 php post while-loop

我将一些数据从表单发布到另一个页面。这是一个购物车,提交的表单是根据购物车中的商品数量在页面上生成的。例如,如果只有 1 个项目,那么我们只有字段名称“item_name_1”,它应该存储一个像“Sticker”这样的值和“item_price_1”,它存储该项目的价格。但是,如果某人有 5 个项目,我们将需要“item_name_2”、“item_name_3”等来获取每个项目的值,直到第五个。

遍历这些项目以获取值的最佳方法是什么?

这是我所拥有的,但显然不起作用。

extract($_POST);

$x = 1; // Assuming there's always one item we're on this page, we set the variable to get into the loop

while(${'item_name_' .$x} != '') {

echo ${'item_name' .$x};

$x++;

}

我对这种用法还比较陌生,所以我并不完全了解如何最好地处理它。

谢谢。

最佳答案

首先,请不要使用extract(),这可能是一个安全问题,因为它很容易操纵POST参数

此外,您不必使用变量名称(听起来很奇怪),而是:

foreach($_POST as $key => $value) {
  echo "POST parameter '$key' has '$value'";
}

为确保您只有以“item_name”开头的参数,您可以这样检查:

$param_name = 'item_name';
if(substr($key, 0, strlen($param_name)) == $param_name) {
  // do something
}

关于php - Foreach 来自表单的 POST 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5479999/

相关文章:

javascript通过按钮发布表单,一种有效,一种无效

java - 您可以在 while 语句中检查多个字符串吗?

c - 该代码应该将每个单词的每个字母转换为大写。但运行代码会导致总线错误。总线错误的原因是什么?

php - 使用 bindParam() 的非常基本的 PDO 方法

php - 如何在 Slim 2 和 PHPUnit 中测试重定向?

node.js - 当变量在服务器上定义时,Meteor.call 返回 'undefined' 结果

jQuery AJAX 通过跨域发布到 https web api 操作

c - 将 if/else 替换为 while/if 语句

javascript - PHP中的动态文本字段

php - 在 Javascript 循环中增加 PHP 变量