2017-03-20 63 views
-1

我正在嘗試使用PHP編寫HTML表單。我一直在做這個項目,直到目前的功能,並遇到一個問題,我有一個數量下拉菜單的項目列表。用戶將選擇所需的每件物品的數量,並將表格發佈到可以訪問每件物品的選定值的下一頁。從數據庫記錄中寫入一個HTML表格

我之前沒有使用過<select><option>,只要我從一個小小的研究中可以看出所有這些下拉菜單都是單獨的形式。

從測試表單我能夠發佈表中最後一項的選項值,但它不匹配任何東西。

<?php 
require("../functions/DbConnect.php"); 
$query = "select * from item_set_menu"; 
$result = mysqli_query($DB,$query); 
echo "<form method='POST' action='../html/order.php'>"; 
echo "<table><th>Item</th><th>Price</th><th>Image</th><th>Add</th>"; 
while($row = mysqli_fetch_assoc($result)){ 
    echo "<tr>"; 
    echo "<td>".$row['set_name']."</td>"; 
    echo "<td>".$row['set_price']."</td>"; 
    echo "<td><img id='thumb' src='".$row['set_img']."'></td>"; 
    echo "<td><select id='drop-menu' name='quantity[]'> 
       <option value='0'>0</option> 
       <option value='1'>1</option> 
       <option value='2'>2</option> 
       <option value='3'>3</option> 
      </select></td>"; 
    echo "</tr>"; 
}echo "</table>"; 
echo "<center> 
      <input type='hidden' value'".$row['set_name']."' name'set_name'> 
      <input type='hidden' value'".$row['set_price']."' name'set_price'> 
      <input type='hidden' value'quantity[]' name'quantity'> 
      <input type='submit' value'order' name'Submit'> 
     </center>"; 
echo "</form>"; 
?> 

期望項目1的輸出在這裏。 形式發佈頁面 - >

<?php 
require("../functions/DbConnect.php"); 
$set_name =$_POST['set_name']; 
$set_price =$_POST['set_price']; 
$quantity =$_POST['quantity']; 
echo "<ol> 
    <li>".$set_name[0]."</li> 
    <li>".$set_price[0]."</li> 
    <li>".$quantity[0]."</li> 
    <ol> 
    "; 
?> 
+0

第二頁是'order.php'?您需要包含產品的id,然後從數據庫中選擇它。 – chris85

+0

如果我留下的答案沒有幫助,請告知。如果您確實發現它有幫助,請注意,如果您覺得它解決了您的問題,請將其標記爲已接受。另見http://stackoverflow.com/help/someone-answers – miken32

回答

0

你的HTML是充滿了錯誤,你不應該用PHP這樣的混合它。試試這個。值得注意的變化是您的表單元素現在實際上具有name屬性,該名稱包含PHP數組表示法[],它們位於循環內部而不是外部。仍然有很多不對的代碼雖然:

<?php 
require("../functions/DbConnect.php"); 
$query = "select * from item_set_menu"; 
$result = mysqli_query($DB,$query); 
while($row = mysqli_fetch_assoc($result)){ 
    $rows[] = $row; 
} 
?> 

<form method='POST' action='../html/order.php'> 
<table><th>Item</th><th>Price</th><th>Image</th><th>Add</th> 
<?php foreach ($rows as $row):?> 
<tr> 
<td><?=$row['set_name']?></td> 
<td><?=$row['set_price']?></td> 
<td><img id='thumb' src='<?=$row['set_img']?>'></td> 
<td><select id='drop-menu' name='quantity[]'> 
       <option value='0'>0</option> 
       <option value='1'>1</option> 
       <option value='2'>2</option> 
       <option value='3'>3</option> 
      </select> 
      <input type='hidden' value='<?=$row['set_name']?>' name='set_name[]'> 
      <input type='hidden' value='<?=$row['set_price']?>' name='set_price'> 
</td> 
</tr> 
<?php endforeach;?> 
</table> 
<center> 
      <input type='submit' value='order' name='Submit'> 
     </center> 
</form> 

注意我已經加載數據庫結果到一個數組中,並用alternative syntaxshort echo tags保持PHP侵入HTML到最低限度。

相關問題