我正在构建一个带有while循环的简单购物车。我正在显示产品ID和数量。用户可以更改数量,我希望在购物车底部有一个"UPDATE"按钮,用于更新购物车中的每个项目。它需要拉出用户输入的产品ID和新数量。我该怎么做呢?
我可以为单个购物车项目做到这一点,但我不知道如何将多个项目作为数组传递,并在按下UPDATE按钮后处理数据。
我代码:<?
$data = mysql_query(.............);
if (isset($_POST['update']))
{
foreach ($array as $id => $qty)
{
$product_id = ...??..;
$new_qty = = ...??..;
$sql = "INSERT INTO.....".$product_id." and.... ".$new_qty."... ";
$insert = mysql_query($sql);
}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" >
<?
while ($data2 = mysql_fetch_array( $data)) { ?>
QTY: <input type="number" name="qty" class="form-field" value="<?=$data2['qty']?>" >
<input name="products_id" value="<?=$data2['product_id']?>" type="hidden">
<? } ?>
<input class="submit-button" type="submit" name="update" value="UPDATE QTY" />
</form>
您必须使用方括号指定name属性,以指示表单元素的数组。
看这里的解释:这里
查看这里的简单概念示例,并将其修改为适合您的代码:
<?
while ($data2 = mysql_fetch_array( $data)) { ?>
QTY: <input type="number" name="qty[]" class="form-field" value="<?=$data2['qty']?>" >
<input name="products_id[]" value="<?=$data2['product_id']?>" type="hidden">
<? } ?>
然后if (isset($_POST['update']))
{
$array = $_POST['products_id'];
$quantities = $_POST['qty'];
foreach ($array as $key => $id)
{
$product_id = $id;
$new_qty = = $quantities[$key];
$sql = "INSERT INTO.....".$product_id." and.... ".$new_qty."... ";
$insert = mysql_query($sql);
}
}