2015-04-04 15 views
2

我有列出電影的頁面。PHP腳本發佈和檢索表單中的多個選擇組合值

同一部電影可能會以不同的分辨率列出,並且還有一個數量選擇器,用於選擇用戶想要購買的副本數量。

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

張貼我們至少的形式:) – Marc 2015-04-04 11:06:32

回答

1

你可以選擇標籤的名稱更改爲quantity[]

然後,你將在你的PHP數組,你可以訪問:

$_POST['quantity'] 

但也有一些事情可以改善你的代碼:

  • 要增加整數($i=$i+1),您可以使用$i++
  • 不推薦使用mysql擴展。使用MySQLiPDO
+0

marc例如:如果我有3個分辨率給定的電影...所以表格將包含3個選擇列表的數量和3個提交按鈕。當我點擊任何按鈕時,$ _POST ['quantity']僅獲得最後一個選擇列表值 – 2015-04-04 11:20:17

+0

然後,您需要以不同的名稱命名或將其重命名爲quantity [],並且$ _POST ['quantity']將會是一個數組 – Marc 2015-04-04 11:21:39

+0

好,但我仍然有一個問題:如何知道這個數量爲哪個分辨率?因爲我有多個數量選擇列表和多個分辨率 – 2015-04-04 11:35:13

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

?>