我有一个循环来创建一对提交按钮,然后我希望能够通过$_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();
}
答案 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();
}
}