如何从数据集(PHP)传递正确的ID?

时间:2015-05-06 09:26:23

标签: php

这是index.php的一部分。此代码用于显示数据库中的所有产品。

 while($row = mysqli_fetch_array($result)) {?>     
      <form action="product.php?>" method="post">

           <tr class="info">
            <td align="center"><h3><?php echo $row['name'];?></h3></td>
          </tr>

          <tr class="success">
            <td align="center"><div class="grow pic"><img src="uploads/<?php echo $row['image'];?>"></div></td>
          </tr>

          <tr class="info">
            <td><?php echo substr($row['description'],0,75);?></td>
          </tr>

          <tr class="success">
            <td align="center"><input name="cart" type="submit" value="More Details"></td>
            </tr>

          <tr>
          <td></td>
          </tr>

      </form>
      <?php
      }
      ?>

还有一个名为product.php的页面。当用户单击index.php中的“更多详细信息”按钮时,它将重定向到product.php。

我想要做的是,当用户点击“更多详情”按钮时,我需要为该页面传递正确的产品ID。怎么做?

4 个答案:

答案 0 :(得分:1)

如果使用提交按钮不是义务,最好使用简单的锚标记并删除form标记:

 <tr class="success">
        <td align="center"><a href="product.php?id=<?php echo $row['id']?>">more details</a></td>
        </tr>

假设你的id字段确实被称为&#34; id&#34; ...这甚至更好,因为这样的请求应该是GET,而不是POST

作为旁注,请注意您的td中的align="center"是一种不好的做法,您应该使用CSS来设置页面样式...

答案 1 :(得分:1)

就像评论所说,在表单中添加一个隐藏的输入标记:

<input name="id" type="hidden" value="<?=$row['id'];?>"/>

然后在product.php中,您可以通过以下方式访问它:

$id = $_POST['id'];

就是这样..

答案 2 :(得分:1)

内部的

form虽然没有意义,但你应该省略form, 实际上你需要传递给idproduct.php

所以只需添加

<tr><td><a href="product.php?id=<?php echo $row['id']?>">more details</a></td></tr>

答案 3 :(得分:0)

实施的最佳方式是:   - 在表单操作方法中使用产品ID。例如:

<form action="product.php?productId=<?php echo $row['id'];?>>" method="post">
  • 在product.php中捕获productId。例如在本机php中:
  

$ productId = $ _GET [&#39; productId&#39;];