PHP如何从while循环构建数组并在submit中使用数据


php how to build an array from a while loop and use data in a submit

我正在构建一个带有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);
    }
}