当我使用while循环时,如何获取每个输入文本的单个值?

时间:2015-03-01 08:19:22

标签: php html mysql checkbox foreach

我试图创建一个表格,它会给出项目列表,然后用户可以勾选他们想要输入的项目他们想要的项目数量。

<table name="item_orders">
<thead>
    <tr>
        <th></th>
        <th>Item</th>
        <th>Price</th>
        <th>Quantity</th>
    </tr>
</thead>
<?php   
    $list=getItemList($connect);
    while($row=mysqli_fetch_assoc($list)){
?>
    <tr>
        <td><input type="checkbox"  name="check_list[]" value="<?=$row['id']?>"/></td>
        <td><?=$row['item']?></td>
        <td><?=$row['price']?></td>
        <td><input type="text" placeholder="How Many" name="howmany"/></td>
        </tr>   
<?php   
    }
?>
</table>

然后我会使用此代码保存它

if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) {
    $listy = getList($connect, $check) -> fetch_assoc();
    $totalamount = $listy['price'] * $howmany;
    addBalanceDB($connect, $userID, $listy['item'], $totalamount, null);
    }
}

问题是,如果用户选择2件物品(狗粮200美元)和(猫粮250美元),那么狗粮的数量为5,猫粮的数量为10。它只会获得10个值。制作狗粮$ 2000而不是1000美元

1 个答案:

答案 0 :(得分:1)

您只需在名称中添加括号,使其成为数组:

<input type="text" placeholder="How Many" name="howmany[]"/>

还要确保添加隐藏值以标识该给定索引处的当前项目:

<input type="hidden" value="<?=$row['id']?>" name="whatis[]"/>

然后应将结果放入$_POST['howmany']$_POST['whatis']

作为替代方案,您当然可以制作固定索引或个人名称。