这是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。怎么做?
答案 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
,
实际上你需要传递给id
到product.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">
$ productId = $ _GET [&#39; productId&#39;];