2012-03-05 9 views
0

複数の製品のオンライン注文フォームを作成しています。チェックボックスで選択した商品の合計費用を計算し、確認メールとして送信する必要があります。チェックボックスの値はドルの価格です。PHPフォーム - チェックボックスの数値

<input type="checkbox" id="product1" name="product1" value="100" /> 
<input type="checkbox" id="product2" name="product2" value="250" /> 

私の 'process.php'ファイルには、チェックされているすべてのアイテムのコストを合計する必要があります。

if(isset($_POST['product1']) && $_POST['product1'] == '100') { 
   $product1 = 100; 
} 

if(isset($_POST['product2']) && $_POST['product2'] == '250') { 
   $product2 = 250; 
} 

$dollars = $product1 + $product2; 

このようにすると、$ dollarsは空の変数です。誰かがこれを修正する方法を教えてもらえますか?

ありがとうございました!

+1

コードは正常に動作します。値をprocess.phpに渡してもよろしいですか? 'method =" post "'でフォームを提出していますか? – Travesty3

+0

'print_r($ _ POST);'を追加すると、ポピュレートされたPOST配列が得られますか? – Ing

+0

$ _POST ['product1']と$ _POST ['product2']は正しく設定されていますか? –

答えて

1

コードに構文上の誤りはありません。だから、唯一の説明は

  1. $ _POST [「製品1」]は値100またはそれらは全て
  2. $ _POST [「product2」]でポストを介して送信されていませんが、また価値250を持っていない持っていない、ということですまたは彼らはこれを確認するためには、同様

ポストを介して送信されていないいない場合は、お使いの.phpファイルの先頭に迅速var_dump($_POST)を行う

+0

十分に恥ずかしがりながら、私はここで再入力したときに持ち越さなかった 'process.php'ファイルに大文字の誤植をしました。上のコードは実際に動作します。ありがとうございました! –

+0

@PatrickAppelman、それは本当によかった、それは私たちの最高に起こる。すべてのベスト: – Starx

-2

チェックボックスの値がPOSTデータをサーバーに送信されることはありませんチェック

このデータをPOSTする必要がある場合は、代わりに<input type="hidden" name="product1value" value="100"/>を使用して値を送信することを検討してください。チェックボックスをチェックして、チェックが入っているかどうかを確認してください。

+0

チェックボックスの値は、チェックボックスがオンである限り送信されます。 – Travesty3

+0

また、非表示の値は常に「オン」であるため、これは問題を解決しません。"ユーザーが商品を望むかどうかはわかりません – octern

+0

チェックボックスで隠し値を使用することをお勧めします。 – Jack

0

これは動作しますので、何かがあなたのコードでは動作しませんが、我々はあなたがしたい場合は、チェックボックスの配列を投稿することができ、今

<?php 
if(isset($_POST['submit'])) { 
    if(isset($_POST['product1']) && $_POST['product1'] == '100') { 
     $product1 = 100; 
    } 

    if(isset($_POST['product2']) && $_POST['product2'] == '250') { 
     $product2 = 250; 
    } 

    echo $dollars = $product1 + $product2; 

} 
?> 

<form method="post"> 
    <input type="checkbox" id="product1" name="product1" value="100" /> 
    <input type="checkbox" id="product2" name="product2" value="250" /> 
    <input type="submit" name="submit" /> 
</form> 
0

をそれを参照してくださいカント。

<?php 

$dollars = 0; 

// If the user post the form 
if(isset($_POST['value'])) { 
    foreach ($_POST['product'] as $product) { 
     if(is_numeric($product) && $product >= 0) { 
      $dollars += $product; 
     } 
    } 
} 

?> 

<!DOCTYPE HTML> 
<html> 
    <head></head> 
    <body> 
     <p>Product : <?php echo $dollars; ?></p> 

     <form method="post"> 
      <label><input type="checkbox" name="product[]" value="100" /> 100</label><br/> 
      <label><input type="checkbox" name="product[]" value="250" /> 250</label><br/> 
      <label><input type="checkbox" name="product[]" value="350" /> 350</label><br/> 
      <label><input type="checkbox" name="product[]" value="20" /> 20</label><br/> 
      <label><input type="checkbox" name="product[]" value="25" /> 25</label><br/> 

      <input type="submit" name="value" /> 
     </form> 
    </body> 
</html> 

このコードは、選択した製品の配列を取得し、合計を作る:これを試してみてください。

関連する問題