在使用for循环设置提交按钮名称后从POST获取名称

时间:2017-07-16 18:41:20

标签: php

我有一个循环来创建一对提交按钮,然后我希望能够通过$_POST使用。

这是一个简单的虚假网上商店类型项目,如果您点击特定项目下方的submit按钮,它将运行一个功能将该项目添加到购物车。

首先,我的for循环使用$count(检查表中的行)。 然后我循环通过那个name=1通过我有很多行。

$count = count($listGames);
 for ($i=1; $i <= $count ; $i++) {
   echo "<form method=POST><td><input type=submit name=$i value='Add to cart'></form></td>";
 }

现在我认为我可以用if语句来做,但我不确定如何继续。我想$i里面可能$_POST[],但当然在for循环之外它会有一个固定的值。我也不确定我是否可以在for循环中使用if语句,所以如果我写$_POST[$i]它会迭代通过。

if (isset($_POST[''])) {
 //add the item to the cart
 addToCart();
}

1 个答案:

答案 0 :(得分:0)

最好将sku中的$listGames值(假设它们是这些值)发送到隐藏字段中。此外,使用一些操作词来轻松处理指令会很有帮助。最后,观看您的html语法,您的打开td似乎位于错误的位置:

$listGames = [
    [
        'sku'=>'item101',
        'price'=>'85.00'
    ],
    [
        'sku'=>'item102',
        'price'=>'79.00'
    ]
];

$count = count($listGames);
for($i = 0; $i < $count; $i++) { ?>
    <td>
        <form method="post" action="#">
            <input type="hidden" name="action" value="add" />
            <input type="hidden" name="sku" value="<?php echo $listGames[$i]['sku'] ?>" />
            <input type="submit" value="Add to Cart" />
        </form>
    </td>
<?php
 }

处理帖子:

<?php
if(isset($_POST['action'])) {
    switch($_POST['action']) {
        case('add'):
            addToCart($_POST['sku']);
            break;
        case('remove'):
            remove($_POST['sku']);
            break;
        case('clear'):
            clearCart();
    }
}
相关问题