2017-07-16 8 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文でそれを行うことができると思ったが、私は続行するかどうかはわかりません。私はおそらく$i$_POST[]と考えていましたが、もちろんforループの外側には固定値があります。私はまた、私は$_POST[$i]を書き込む場合、私はそれが繰り返しを介して行うので、私はifステートメントをforループ内で使用できるかどうかはわかりません。

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

答えて

0

隠しフィールドに(つまり、これらが何であるかであると仮定して)あなたの$listGamesからあなたsku値を送信する方が良いだろう。また、いくつかのアクションワードを使用して簡単に命令を処理すると便利です。ポストを処理するために

$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構文を見て、あなたのオープンtdは間違った場所にあるように見えます!それはまさに私がやりたかったことでした。答えは最後にとてもシンプルでした。また、ループ内のHTML構文は、しばらくしてから私を混乱させるものです。 – Manmoth

+0

私の答えが正しいと感じたら、答えを受け入れてください。質問は未解決で開かれないようにしてください。また、HTMLが有効である限り、カートに追加するためのフォームがたくさんあることは正常です。 – Rasclatt

関連する問題