2015-05-06 19 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'];