PHP脚本从表单发布和检索多个选择组合值

时间:2015-04-04 11:04:04

标签: php html

我有列出电影的页面。

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

使用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
}
?>

3 个答案:

答案 0 :(得分:1)

您可以将选择标记的名称更改为quantity[]

然后,您将在PHP中拥有一个可以访问的数组:

$_POST['quantity']

但是您可以在代码中改进一些内容:

  • 要增加整数($i=$i+1),您可以使用$i++
  • 不推荐使用mysql扩展。使用MySQLiPDO

答案 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;