$ _POST ['amount']は商品の量を取得せず、$ _POST ['itemId']は最後のアイテムをdbで表示しますが、クリックしたアイテムは表示しません。だから、すべての商品は、showですが、形だけで、最後の1ではなく、あなたが同じフォーム要素のフォーム入力の内部のすべてを作成し、同じ名前の属性を再利用しているあなたのコードでは
<div class=cart>
<b>Cart:</b><br>
<?php
if(isset($_POST['add']))
{?>
<?=$_POST['amount']?>
<?php }
?>
</div>
<hr>
<?php
class shop
{
public function baseConnect()
{
$connect = mysqli_connect("localhost", "root", "", "test");
$table = "SELECT * FROM `goods`";
$result = mysqli_query($connect, $table);
return $result;
}
}
$shop = new shop;
$items = $shop->baseConnect();
?>
<form method='post'>
<?php
while ($item = mysqli_fetch_assoc($items))
{?>
<input type=hidden value='<?=$item['good'];?>' name='itemId'>
<b><?=$item['good'];?></b><br>
Price: <?=$item['price'];?>$<br>
<input type=text name='amount'><br>
<input type=submit name='add' value='Add to cart'><br>
<?php }
?>
</form>
。今すぐsubmitをクリックすると、同じ 'name'属性を持つ複数の項目があります。 – commanderZiltoid
これは大文字のクラスを呼び出すための非常に一般的な標準です: 'Shop' – Michael