PHP脚本,用于发布和检索表单中的多个选择组合值


PHP Script to post and retrieve multiple select combo values from a form

我有一个列出电影的页面。

同一部电影可能会以不同的分辨率列出,每部电影都有一个数量选择器,用于选择用户想要购买的拷贝数量。

使用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++;
}

?>