2015-05-06 73 views
0

这是index.php的一部分。此代码用于显示数据库中的所有产品。如何从数据集(PHP)传递正确的ID?

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

添加一个(隐藏)表单字段,其中包含值? – jeroen

+0

表单中的要点是什么?只需添加一个标准锚并添加一个产品唯一标记的GET参数,例如该ID,例如product.php?id = idhere –

+0

使用隐藏字段并传递您的ID。 –

回答

1

像评论说,一个隐藏的输入标签添加到您的形式:

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

然后product.php,您可以通过访问:

$id = $_POST['id']; 

就是这样..

1

如果使用一个提交按钮是不是一种义务,倒不如使用一个简单的锚标记,丢弃form标签:

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

假设您的ID字段确实被称为“ID” .. 。这更好,因为这样的请求应该是GET,而不是POST

作为一个方面的话,请注意您的TD的align="center"是一个不好的做法,你应该使用CSS风格你网页...

1

form的内部,而没有道理,你应该忽略form, 你确实需要传递给idproduct.php

所以只需添加

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

0

实现最好的办法是: - 在表单操作方法中使用产品ID。例如:在product.php

<form action="product.php?productId=<?php echo $row['id'];?>>" method="post"> 
  • 渔获的productId。在原生的PHP为例:

$的productId = $ _GET [ '的productId'];