2016-04-06 14 views
0

PHPの複数のチェックボックスの合計を計算する方法array - チェックされたチェックボックスの総価格?選択されたプログラミング言語の異なる値を持つPHPの複数のチェックボックス配列 - チェックされたチェックボックスの総価格を取得

合計価格:

:C++、Javaの= 1200 $

<form method="post" action="#"> 
    0<input type="checkbox" name="count[]" id="count[]" value="0"/> 
    <input type="hidden" name="language[]" id="language" value="C"/>C [$800]  
    <input type="hidden" name="price[]" id="price" value="800"> <br/> 

    1<input type="checkbox" name="count[]" id="count[]" value="1"/> 
    <input type="hidden" name="language[]" id="language" value="C++"/>C++ [$700] 
    <input type="hidden" name="price[]" id="price" value="700"> <br/> 

    2<input type="checkbox" name="count[]" id="count[]" value="2"/> 
    <input type="hidden" name="language[]" id="language" value="Assembler"/>Assembler [$600] 
    <input type="hidden" name="price[]" id="price" value="600"><br/> 

    3<input type="checkbox" name="count[]" id="count[]" value="3"/> 
    <input type="hidden" name="language[]" id="language" value="Java"/>Java [$500] 
    <input type="hidden" name="price[]" id="price" value="500"> <br/> 

    4<input type="checkbox" name="count[]" id="count[]" value="4"/> 
    <input type="hidden" name="language[]" id="language" value="PHP"/>PHP [$400] 
    <input type="hidden" name="price[]" id="price" value="400"> <br/> 

    <input type="submit" name="sbt" id="sbt" value="SUBMIT"> 
    </form> 

これは、PHPのコードです。たとえば、結果は以下のように表示されるべき

<?php 
if(isset($_POST['sbt'])){ 

    $count = $_POST['count']; 
    $sub_menu = $_POST['sub_menu']; 
    $sub_price = $_POST['sub_price']; 
    $sub_price1 = $_POST['sub_price']; 
    //$total_price = array($sub_menu => $sub_price); 

    foreach($count as $j) 

    echo $sub_menu[$j] . '['.$sub_price[$j]. ']' ; 
} 
?> 
+2

ID **は固有である必要があります – j08691

+0

あなたはあきらめましたか? – AbraCadaver

+0

いいえ:))。非常にAbraCadaverありがとう、問題は解決され、すべてが完璧に動作します。 – user3559269

答えて

0

あなたはマックする必要があります電子必ず配列インデックスは、グループごとに同じです。

0<input type="checkbox" name="count[0]" value="0"/> 
<input type="hidden" name="language[0]" value="C"/>C [$800]  
<input type="hidden" name="price[0]" value="800"> <br/> 

1<input type="checkbox" name="count[1]" value="1"/> 
<input type="hidden" name="language[1]" value="C++"/>C++ [$700] 
<input type="hidden" name="price[1]" value="700"> <br/> 

その後、各countためpricelanguageを取得することができます:

$price = array_intersect_key($_POST['price'], $_POST['count']); 
$language = array_intersect_key($_POST['language'], $_POST['count']); 

次に、テキストを内破し、価格合計:

+0

ありがとう、私はあなたが言う方法を試しましたが、結果は私が必要とするものではありません。私はそのような結果をもたらしました。もし私がC++、Javaのような2つの言語だけを選んだら、合計価格は$ 1200でなければなりません。 – user3559269

+0

はい、私は速すぎました。編集されました。 – AbraCadaver

0
$items = array(); 
$total = 0; 

foreach($_POST['price'] as $k => $price) { 
    if(in_array($k, $_POST['count'])) { 
     $items[] = $_POST['language'][$k]; 
     $total += intval($price); 
    } 
} 

$items = implode(", ", $items); 
echo $items . " = $" . $total; 
+0

ありがとう、私はあなたが言う方法を試しましたが、結果は私が必要とするものではありません。私はそのような結果が必要です。例えば、C++、Javaの2つの言語を選択した場合、合計価格は$ 1200で、結果はC++、Java = $ 1200です。この問題はforeachループで解決する必要がありますが、どのように正確に行うかを示す。ありがとう – user3559269

+0

@ user3559269もう一度やり直せますか?私は、チェックされたものだけを追加するように答えを更新しました。 –

+0

問題が解決しました。 :)非常にパトリックグレゴリオ、それは非常に有用な、ありがとう、それは素晴らしいです。 :)) – user3559269

関連する問題