出于学习目的,我正在做这个网站,用户可以在其中选择一些项目和他想要的单位数量,假设这是一个最简单的购物应用程序。
因此,我从数据库中读取目录中的现有项目:
$queryResult=$mySQL->query("SELECT nombre, precio, id FROM productos");
然后我打印产品列表:
$queryResult=$mySQL->query("SELECT nombre, precio, id_producto FROM productos");
echo "<form action='"checkout.php'" method='"POST'">";
while($datos=$mySQL->fetch_array($queryResult))
{
$nombre=$datos['nombre'];
$id_producto=$datos['id_producto'];
$precio=$datos['precio'];
echo "<h1>$nombre</h1>";
echo "<input type='"checkbox'" name='"$id_producto'" value='"on'"> Cantidad: <input type='"number'" name='"$id_producto"."Number'""." min='"1'" max='"20'" step='"1'" value='"1'"><br>";
echo "<h3>Precio: $precio</h3><br>";
}
echo "<br>";
echo "<input type='"submit'" class='"button'" value='"Comprar'">";
echo "</form>";
它们从$id_producto
中获取值,在数字类型输入的情况下,我连接"Number"
,因此它们不会获得相同的名称。
提交后,我正在尝试执行以下操作:
foreach($_POST as $post_key => $post_value){
if ($post_value=="on") {
$var1 = $_POST['.$post_key."Number".'];
}
}
因此,如果选中了一个复选框,我会检查其相应的数值。
是否可以在该循环中执行另一个 $_POST['somevariable']?
如何在方括号内连接该参数?
您不需要单引号,当键是常量字符串时。由于您的键是一个表达式,只需将该表达式放在括号内:
if ($post_value=="on") {
$var1 = $_POST[$post_key."Number"];
}
更好的方法是将输入发布为数组:
echo "<input type='"checkbox'" name='"producto[]'" value='"$id_producto'"> Cantidad: <input type='"number'" name='"Number[$id_producto]'" min='"1'" max='"20'" step='"1'" value='"1'"><br>";
然后你可以使用循环:
foreach ($_POST['producto'] as $post_value) {
$var1 = $_POST['Number'][$post_value];
}