我在一頁上顯示來自資料庫的專案串列(多個條目)。我正在嘗試將從資料庫中獲取的所有這些值發布到另一個 php 檔案以將專案添加到購物車。
但是當我為串列中的任何專案按下“添加到購物車”按鈕時,它只會通過 POST 發送最后一個專案。我知道這是因為 while 回圈,但我不知道實作它的正確方法?
<form action="php/addToCart.php" method= "POST">
<?php
while($product=mysqli_fetch_assoc($featured)):
?>
<div class="col-md-5">
<h4><?= $product['title'] ?></h4>
<image src="php/marketplace_images/<?= $product['image'];?>" alt="<?= $product['title'];?>" height="300" width="300"/>
<p class="lprice"> Price $ <?= $product['price'];?></p>
<p class="desc"> Description: <?= $product['description'];?></p>
<p class="bname"> Brand Name: <?= $product['brandname'];?></p>
<input name="title" type="hidden" value="<?= $product['title'] ?>" />
<input name="price" type="hidden" value="<?= $product['price'] ?>" />
<input name="brandname" type="hidden" value="<?= $product['brandname'] ?>" />
<input name="image" type="hidden" value="<?= $product['image'] ?>" />
<input name="featured" type="hidden" value="<?= $product['featured'] ?>" />
<button type="submit" class="btn btn-success" data-toggle="modal" name="add">Add To Cart</button>
</div>
<?php endwhile;
?>
uj5u.com熱心網友回復:
您最終會得到一個表單,其中包含 n 個(與專案一樣多)具有相同名稱的欄位,這些欄位不再分開。例如,您將有 n 個名為“title”的欄位,n 個名為“price”的欄位等。
你永遠不會知道哪個標題屬于哪個價格。
另外,您顯示的代碼僅顯示表單的呈現,而不是您在提交時使用它所做的事情(但這不會使它變得更好,因為您無法區分所有不同的輸入)。如果該代碼需要一個標題,它可能會采用最后一個,或者是一個隨機的。
因此,如果您只想發送一個專案:將您的and<form>移動</form> 到while回圈中,這樣您最終會得到許多可以單獨提交的表單。一般來說,我建議不要發布所有資料,只將自己限制在一個專案的 id 上,但這超出了這個問題的范圍(但想象一下,當我在將專案提交到購物車之前將價格操縱為 0 時會發生什么)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/482032.html
上一篇:如何將所有服務器別名和www重定向到.htaccess中的SSL非www
下一篇:WinHTTP導致ApacheWeb服務器(localhost)在WindowsVista上以http狀態400進行回應
