PHP清理代码$\u发布
$\u POST['amount']无法获取商品的数量,$\u POST['itemId']显示数据库中的最后一个项目,但不是您单击的项目。因此,所有商品都会显示,但表单只接收最后一个商品,而不是单击的商品PHP清理代码$\u发布,php,post,cart,Php,Post,Cart,$\u POST['amount']无法获取商品的数量,$\u POST['itemId']显示数据库中的最后一个项目,但不是您单击的项目。因此,所有商品都会显示,但表单只接收最后一个商品,而不是单击的商品 <div class=cart> <b>Cart:</b><br> <?php if(isset($_POST['add'])) {?> <?=$_POST['amount']?
<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>
购物车:
价格:$
在代码中,您正在同一表单元素内部创建所有表单输入,并为每个元素重用相同的name属性。单击“提交”时,发送到服务器的是这些名称的最后一个实例。因此,如果您向amount
添加一个数字,并在列表中不是最后一个项目的项目上单击submit按钮,您仍将收到amount
和itemId
的最后一个实例的值
要解决此问题,请将
移动到while循环内部(还包括循环末尾的
标记)
更改:
<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>
价格:$
致:
价格:$
在代码中,您正在同一表单元素内部创建所有表单输入,并为每个元素重用相同的name属性。单击“提交”时,发送到服务器的是这些名称的最后一个实例。因此,如果您向amount
添加一个数字,并在列表中不是最后一个项目的项目上单击submit按钮,您仍将收到amount
和itemId
的最后一个实例的值
要解决此问题,请将
移动到while循环内部(还包括循环末尾的
标记)
更改:
<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>
价格:$
致:
价格:$
在while循环中移动
元素。现在,当您单击“提交”时,您有多个具有相同名称
属性的项目。这是一个使用大写字母调用类的非常常见的标准:Shop
在while循环中移动
元素。现在,当您单击submit时,您有多个具有相同名称
属性的项。这是用大写字母调用类的一个非常常见的标准:Shop
最好用文字解释更改了什么,这样,请大家(在本例中是OP)就不必知道了_我说OP是因为它看起来太本地化了。)最好用文字解释一下发生了什么变化,这样大家(在本例中是OP)就不必知道了_我说OP是因为它似乎太本地化了。)