我有一个产品页面,显示产品每行中的名称,数量和添加到购物车按钮
我做了这个只是削减了一些代码
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,即使我选择了某个产品的数量的不同值,我我的想法一塌糊涂。
答案 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]