2012-03-13 96 views
1

自從我看了PHP並且我有一塊腦袋已經有一段時間了。我試圖使用foreach從表中獲取值,以便我可以將值存儲在會話中,並顯示已訂購的項目數。使用PHP的每個從表中獲取動態值

如項目數2 4等

這裏的表/表格

 <form id="products" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
      <?php 
       //every item from the products table is queried because all fields need to be displayed 
       $sSQL = "SELECT * FROM products"; 
       $rsResult = mysql_query($sSQL); 
      ?> 
      <table id="products_table"> 
       <tr style="font-weight:bold"> 
        <td style="text-align:center">ID</td> 
        <td>Ref No.</td> 
        <td>Product Name</td> 
        <td>Description</td> 
        <td style="text-align:right">Price</td> 
        <td colspan='2' style='text-align:center'>Add To Order</td> 

       </tr> 
      <!--for each record in the table that matches the query a row is created in the table and the data in the relevant field is displayed--> 
      <?php while ($row = mysql_fetch_array($rsResult)){ ?> 
       <tr> 
       <input type="hidden" name="productID[<? echo $row['productID']; ?>]" value="<? echo $row['productID']; ?>" /> 
        <td style="text-align:center"><? echo $row['productID']; ?></td> 
        <td><? echo $row['productReference']; ?></td> 
        <td><? echo $row['productName']; ?></td> 
        <td><? echo $row['productDescription']; ?></td> 
        <td style="text-align:right"><? echo '£'. $row['productPrice']; ?></td> 

        <td style="text-align:center"><span>Qty</span><input type='text' name="qty[<? echo ($_POST['qty']); ?>]" value="" ></td> 
      <? } ?> 
      </table> 

繼承人的PHP

<?php 
      foreach($_POST as $key => $value){ 
       echo $key . ' ' .$value.'<br />'; 
       print_r($key); 
      } 
?> 

我知道PHP是任何地方完成填充會話等,我只是無法弄清楚如何從表單中獲取值。這個PHP是我試圖嘗試至少得到一些價值出來呢

任何幫助,在你的代碼是極大的讚賞

+0

1.您在哪裏結束表單標籤? 2.如果你使用'print_r($ _ POST)',你會得到什麼? – 2012-03-13 19:01:20

+0

抱歉,我沒有看到您的評論,當我複製並粘貼代碼時,表格標籤被遺漏 – tatty27 2012-03-14 10:04:18

回答

1

,沒有必要

<input type="hidden" name="productID[<? echo $row['productID']; ?> 

領域。 也改線

<td style="text-align:center"><span>Qty</span><input type='text' name="qty[<? echo ($_POST['qty']); ?>]" value="" ></td> 

<td style="text-align:center"><span>Qty</span><input type='text' name="qty[<? echo ($row['productID']); ?>]" value="" ></td> 

,以便提交表單後,您可以訪問發佈的值:

$sSQL = "SELECT * FROM products"; 
$rsResult = mysql_query($sSQL); 
while ($row = mysql_fetch_array($rsResult)) 
{ 
    echo $_POST['qty'.$row['productID']]; 
} 
1

你爲什麼不只是在具有專有名稱的輸入中顯示數據?

+0

我不確定你的意思? – tatty27 2012-03-13 21:04:28

+0

您有 =「qty ['echo'($ _POST ['qty'])';}> '我建議你不要將值存儲在name數組中,而應該存儲在value屬性中。該名稱將保持爲'name =「qty []」',並且當您提交表單時,無論是否使用foreach,您都可以從$ _POST ['qty']中獲取值。如果你需要多個值,你可以序列化$ _POST ['qty']'並將它傳遞給你需要的地方。 – 2012-03-13 21:24:08

+0

好了,用你的建議我的代碼打後這是我... <?PHP \t \t \t \t \t \t如果(isset($ _ POST [ '秩序'])){ \t \t \t \t的foreach ($ _POST ['qty'])作爲$ key => $ value) \t \t \t \t echo「$ value is value,$ key is key
」; \t \t \t \t} \t \t \t \t \t \t?>我離開名稱只是 「數量[]」 和值空白。當我嘗試$ _post ['qty']時,它只是顯示數組,所以至少我比昨天更進一步。感謝您的幫助 – tatty27 2012-03-14 09:59:10