0

このコードを考えると:

<input type="checkbox" id="Coke" name="Price" value="70" />
<input type="checkbox" id="Fanta" name="Price" value="70" />
<input type="checkbox" id="Sprite" name="Price" value="70" />

$type="Fanta"ユーザーがFantaチェックボックスを選択した場合、php変数が必要ですが、合計価格計算のためにフォームチェックボックスVALUESをNUMERICのままにする必要がある方法を知りたいです。

4

4 に答える 4

3

正確に何を求めているのかは明確ではありませんが、基本的に2つのフィールドが必要だと思います。1つは価格を定義し、もう1つは選択したタイプを定義します。

その場合、最善の策はサーバー側に価格を保存することです(そうすれば、人々も価格を変更できなくなります。これは良いことです!)。これを行うと、チェックボックスは次のようになります。

<input type="checkbox" id="Coke" name="type[]" value="Coke" />
<input type="checkbox" id="Fanta" name="type[]" value="Fanta" />
<input type="checkbox" id="Sprite" name="type[]" value="Sprite" />

バックエンドコードは次のようになります。

 $prices = array(
     'Coke' => 70,
     'Fanta' => 70,
     'Sprite' => 70
 );

 $types = $_POST['type'];
 $total = 0;

 foreach($types as $key => $type) {
     if (!isset($prices[$type]))
         continue;

     $total += $prices[$type];
 }

 // Use $total as your total price for whatever calculation
 echo $total;

コメントによると、これらの価格をクライアント側で計算したい場合はjson_encode、スクリプトタグに出力して、価格を直接使用できます。基本的に、サーバー側の価格配列をクライアント側の価格配列に変換します。

<script type="text/javascript">
    var prices = <?= json_encode($prices) ?>;

    // Now you can use prices['Coke'] etc, based off the value of the selected checkbox.
</script>
于 2013-03-16T12:57:41.410 に答える
1

ユーザーが Fanta チェックボックスを選択した場合、

次に、フィールドに名前を付けますfanta

<input type="checkbox" id="Fanta" name="fanta" value="70" />

これが完了したら、$_POSTまたは$_GETスーパーグローバルを使用して値を取得できます (フォーム メソッドによって異なります)。

if (isset($_POST['fanta'])) {
    echo $_POST['fanta'];
}

ただし、クライアント側からの価格に決して依存するべきではありません。

しかし、合計価格を計算するためにNUMERICのままにするには、フォームチェックボックスVALUESが必要です。

HTTP では値が文字列として送信されるため、これは起こりません。幸いなことに、PHP は自動型ジャグリングを行うため、文字列値を使用して計算を行うことができます。

http://codepad.viper-7.com/GOhHdz

場合によっては、明示的に整数値にしたいことがあります。その場合、型キャストを使用できます。

var_dump((int) '18'); 

http://codepad.viper-7.com/kJlGoS

于 2013-03-16T12:53:11.233 に答える
0
<input type="checkbox" value="Coke" name="Price" rel=70 />
<input type="checkbox" value="Fanta" name="Price" rel="70" />
<input type="checkbox" value="Sprite" name="Price" rel="70" />

JavaScript を使用して、選択したチェックボックスの合計価格の rel 属性値を取得します

于 2013-03-16T13:08:23.533 に答える
0

フォームを投稿すると、とにかく値として 70 が得られます。

echo $_POST['Price']; 

70を与える

于 2013-03-16T12:54:19.340 に答える