0

出于学习目的,我正在做这个网站,用户可以在其中选择一些商品和他想要的单位数量,假设这是一个最简单的购物应用程序。

因此,我从数据库中读取了目录中的现有项目:

$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'] 可以吗?
如何在方括号内连接该参数?

4

1 回答 1

1

您不需要单引号,这是用于当键是常量字符串时。由于您的键是一个表达式,只需将该表达式放在括号内:

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];
}
于 2013-10-24T03:32:04.737 回答