2017-07-16 85 views
0

我有一個循環來創建一對提交按鈕,然後我想通過$_POST來使用它。使用for循環設置提交按鈕名稱後從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說法去做,但我不知道如何繼續。我認爲$_POST[]裏面有$i,但是當然在for循環之外它會有一個固定的值。我也不確定我是否可以在for循環中使用if語句,所以如果我編寫$_POST[$i]它會遍歷。

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

回答

0

這將是更好地從你的$listGames(假設是這些是什麼)把你的sku值到一個隱藏字段。另外,使用一些動作詞來輕鬆處理指令會很有幫助。最後,看你的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(); 
    } 
} 
+0

感謝您的幫助!這正是我想要做的。最後的答案非常簡單。此外,循環內部的HTML語法總是讓我困惑不已。 – Manmoth

+0

如果您覺得我的回答是正確的,請接受答案,這樣問題就不會被公開和解決。此外,添加一堆用於添加到購物車的表單也很好,這是正常的,只要HTML有效即可。 – Rasclatt