0

好的,我是这个网站的新手,也是 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 即使我选择了某个产品的不同数量值,我也被空白了有想法。

4

3 回答 3

2

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

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

您可以通过

$_POST['quan'][$prodid]
于 2013-07-24T15:12:27.223 回答
0

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

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

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

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

$_POST["quan"][$some_product_id]
$_POST["quan"][$another_product_id]
于 2013-07-24T15:14:07.753 回答
0

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

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

另外:如果您不想在选择中包含 0,请不要以 0 开始 for 循环

for ($x=1;$x<=$currenQuantity;$x++)

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

于 2013-07-24T15:11:23.803 回答