-1

各値が配列内にある場合、ユーザーが html フォームで選択した値を使用するにはどうすればよいですか?

例:

HTML フォーム:

Pick a color!
<input type ="checkbox" name="color[]" value="red">Red<br>
<input type ="checkbox" name="color[]" value="blue">Blue<br>
<input type ="checkbox" name="color[]" value="yellow">Yellow<br>

PHP コード

$color = array (
 'red' => 10,
 'blue' => 20,
 'yellow' => 30,
);

ユーザーが選択した値のみを取得して合計する方法は? したがって、ユーザーが赤と黄色を選択した場合、結果は 40 になり、ユーザーが青色のみを選択した場合、結果は 20 になります。

4

3 に答える 3

3

とにかく、SO はコード作成サービスに脱線するので:

$sum = array_sum(
     array_intersect_key($color, array_flip($_REQUEST["color"]))
);

パーツは、キーを入力リストと比較した後、配列に含まれるarray_intersect_keyものをすべてコピーします。$colorcolor[]

于 2013-11-11T03:45:15.197 に答える
2

フォームが送信されたときにこの合計を計算していますか? もしそうなら、このようなもの:

<?php

$colors = array (
    'red' => 10,
    'blue' => 20,
    'yellow' => 30,
);

$total = 0;

if(isset($_POST)) {

    foreach($_POST['color'] as $color) {

        if(array_key_exists($color, $colors))
            $total += $colors[$color];

    }

}

// tick red, total is 10
// tick red and blue, total is 30
// tick red and yellow, total is 40
// etc...

?>
于 2013-11-11T03:40:42.857 に答える
2

value属性に単に「実際の値」を入れないのはなぜですか?? お気に入り :

 Pick a color!
 <input type ="checkbox" name="color[]" value="10">Red<br>
 <input type ="checkbox" name="color[]" value="20">Blue<br>
 <input type ="checkbox" name="color[]" value="30">Yellow<br>

そして、それを合計するためにループします!!

于 2013-11-11T03:44:10.160 に答える