我有列出电影的页面。
同一部电影可能会以不同的分辨率列出,并且每部电影都有一个数量选择器,用于选择用户想要购买的副本数量。
使用while循环我从数据库中读取电影的可用分辨率,以便为每个分辨率构建一个具有相应库存数量的选择组合,并提交一个“添加到购物车”按钮
我的问题是:如何使用post方法发布表单并获取所选数量?
以下是我正在使用的代码:
<tr class="form-box">
<th height="50px">Quantity</th>
<?php
$QuantityDisplay=getMovieResolutions($movieSecond['MovieID']);
while($q = mysql_fetch_array($QuantityDisplay)){
$i=0;
?>
<td style=" margin-left:10px;">
<select style="width:120px" name="quantity">
<option value="0">Select</option>
<?php
while($i <= $q['QuantityInStock']){
?>
<option ><?php echo $i;?></option>
<?php $i=$i+1; }?>
</td>
<td> <input type="submit" value="Add To Cart" name"addToCart"> </td>
<?php
}
?>
答案 0 :(得分:1)
您可以将选择标记的名称更改为quantity[]
然后,您将在PHP中拥有一个可以访问的数组:
$_POST['quantity']
但是您可以在代码中改进一些内容:
答案 1 :(得分:1)
您的所有选择都被命名为quantity
,因此您遇到重叠ID的问题。
为每个选择一个不同的名称,例如:
<select style="width:120px" name="quantity<?php echo $i; ?>">
然后您将能够将数量检索为:
$quantities = array();
$i=0;
while (isset($_POST['quantity'.$i])) {
$quantities[] = $_POST['quantity'.$i];
$i++;
}
答案 2 :(得分:0)
如果您在循环中使用它,首先会为您的选择框添加不同的名称。否则,如果有多个值类似
,您将获得$_POST
中的第一个选定项目
<tr class="form-box">
<th height="50px">Quantity</th>
<?php
$QuantityDisplay=getMovieResolutions($movieSecond['MovieID']);
$j=1;
while($q = mysql_fetch_array($QuantityDisplay)){
$i=0;
?>
<td style=" margin-left:10px;">
<select style="width:120px" name="quantity<? echo $j; ?>">
<option value="0">Select</option>
<?php
while($i <= $q['QuantityInStock']){
?>
<option ><?php echo $i;?></option>
<?php $i=$i+1; }?>
</td>
<td> <input type="submit" value="Add To Cart" name"addToCart"> </td>
<?php
$j++;
}
&GT;