2012-03-13 39 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