使用PHP提交带有复选框和数字类型的HTML表单?

使用PHP提交带有复选框和数字类型的HTML表单?,php,html,forms,Php,Html,Forms,出于学习的目的,我在做这个网站,用户可以选择一些项目和他想要的单位数,假设这是一个最简单的购物应用程序 所以,我从数据库中读取了目录中的现有项目: $queryResult=$mySQL->query("SELECT nombre, precio, id FROM productos"); 然后我打印产品列表: $queryResult=$mySQL->query("SELECT nombre, precio, id_producto FROM productos");

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

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

$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>";
因此,如果选中复选框,我将检查其对应的数值

可以在该循环中执行另一个$u 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>";

尝试将
$\u POST['.$POST\u key.“Number”。]
替换为
$\u POST[$POST\u key.“Number”]
为什么$\u POST索引会来自矩阵?当您使用
name=“xxx[].
时,PHP会将所有这些输入收集到
$\u POST['xxx'].
中的数组中。因此
['Number'.['Number']
部分位于
$var1=$\u POST['Number'.]这个句子很像PHP?它来自
。我现在明白了!如果我有任何名为cat的输入,就会有像
$\u POST['cat']
这样的简单输入,在本例中,会检查
$\u POST['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];
}