隐藏输入无法正常工作

时间:2016-05-01 12:38:18

标签: php mysql session post mysqli

我正在开发一个简单的PHP页面,这是我的代码的一小部分无法正常工作。

我想使用数据库并打印一些产品,对于每个产品,我想显示一个“购买”按钮。

如果我按下此按钮,则必须使用产品ID设置隐藏输入(稍后必须将其发送到另一页)。

但是,如果我使用var_dump来控制(如果我的数据是正确的),我可以看到ID是错误的(我看到它总是在最后显示)

  <form id="products_list" method="post" action="step2.php">
  <table>
   <tr>
    <td align="center">Immagine</td>
    <td align="center">Nome prodotto</td>
    <td align="center">Descrizione prodotto</td>
    <td align="center">Prezzo unitario</td>
    <td align="center">Taglie disponibili</td>
    <td align="center">Colori disponibili</td>
    <td align="center">Nickname disponibili</td>
   </tr>

  <?php
   $product = mysqli_query($mysqli, "SELECT * FROM products");
   while ($row = mysqli_fetch_array($product)) {
    $id = $row[id_products];
    print("
    <tr>
     <td align=\"center\">".$row[img_products]."</td> 
     <td align=\"center\">".$row[name_products]."</td>
     <td align=\"center\">".$row[description_products]."</td>
     <td align=\"center\">".$row[price_products]."</td>
     <td align=\"center\">".$row[size_products]."</td>
     <td align=\"center\">".$row[color_products]."</td>
     <td align=\"center\">".$row[nick_products]."</td>
     <input type=\"hidden\" name=\"id_products\" value=\"".$id."\"/>

     <td><input type=\"submit\" name=\"buy\" value=\"Acquista\"/></td>
    </tr>");
   }
  ?>
   </table> 
   </form>

1 个答案:

答案 0 :(得分:1)

您应该在while循环中打开和关闭表单。

修改

更多解释为什么你应该在while循环中打开和关闭: 如果while循环位于表单标记内,则表示隐藏字段在同一表单中多次输出。由于它们都被命名为相同,因此您只需在提交后检索一个值(最后一个隐藏输入的值)。 如果在while循环中打开和关闭表单,则每个隐藏的输入和按钮都是各自的形式。这意味着,当提交该表单时,您只需检索该特定隐藏字段的值。 : - )