具有相同名称的php多个下拉菜单无法获取值

时间:2013-07-24 15:04:36

标签: php

好吧,我在这个网站上的新内容也是php的新功能,无法得到这个逻辑,

我有一个产品页面,显示产品每行中的名称,数量和添加到购物车按钮

我做了这个只是削减了一些代码

    while($showProducts = mysql_fetch_array($products))
            {
            $currenQuantity = $showProducts['current_quantity'];
            $prodid = $showProducts['product_id'];
    echo"<select name='quan'>";

                for ($x=0;$x<=$currenQuantity;$x++)
            {
                if($currenQuantity != 0)
                {
                echo "<option value=$x> $x </option>";
                }
            }
     echo"</select><br/>";
     }

现在问题是每次我试图通过使用$ _POST ['quan']来获取值时,我总是得到的值是默认值1,即使我选择了某个产品的数量的不同值,我我的想法一塌糊涂。

3 个答案:

答案 0 :(得分:2)

您不能对表单中的输入/选择字段使用相同的名称。 您必须指定不同的名称或创建索引数组:

<select name="quan[$prodid]">

您可以通过

访问它
$_POST['quan'][$prodid]

答案 1 :(得分:0)

只是一个疯狂的猜测:你的每个产品行都有一个名为'quan'的选择? 然后,您将在POST数据中获得名为“quan”的最后一个选择。

每个数量的前缀选择产品名称或某种(加扰)ID。

此外: 如果您不想在选择中使用0,请不要以0

启动for循环
for ($x=1;$x<=$currenQuantity;$x++)

如果当前数量为0,则不执行for循环。

答案 2 :(得分:0)

如果您在一个表单中有更多具有相同名称(quan)的选择框,则您将获得最后一个选择框的值。

您应该将选择框定义更改为:

echo"<select name='quan[" . $prodid . "]'>";

然后您可以使用以下方式访问这些值:

$_POST["quan"][$some_product_id]
$_POST["quan"][$another_product_id]