我有一个列出电影的页面。
同一部电影可能会以不同的分辨率列出,每部电影都有一个数量选择器,用于选择用户想要购买的拷贝数量。
使用while循环,我从数据库中读取电影的可用分辨率,以便建立一个选择组合,每个分辨率都有相应的库存数量,并有一个提交按钮"添加到购物车"
我的问题是:如何使用邮寄方式邮寄表格并获得所选数量?
这是我正在使用的代码:
<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
}
?>
您可以将选择标签的名称更改为quantity[]
然后你将在你的PHP中有一个数组,你可以用访问它
$_POST['quantity']
但是你可以在代码中改进一些东西:
- 要增加整数(
$i=$i+1
),可以使用$i++
- 不赞成使用mysql扩展。使用MySQLi或PDO
所有选择都被命名为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++;
}
首先,如果您在循环中使用选择框,请为它取不同的名称。否则,如果有多个类似的值,您将获得$_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++;
}
?>