0

私はコンピューター注文システムを作ろうとしていました。私の問題は、チェックボックスの最初の値をどのように計算できるかです。チェックボックスの2番目の値は、注文の概要に掲載されます。

これら3つすべてを確認すると、メニューの合計金額が計算され、選択したメニューが注文の概要に表示されます。しかし、どうすれば合計金額を表示できるのかわかりません。

チェックボックスの最初の値の合計を計算する方法を教えてもらえますか?

<form method="post">
    <input name='ts[]' type='checkbox' value='40 |Tosilog'/> Tosilog
    <br>
    <input name='cs[]' type='checkbox' value='40 |Chiksilog'/>Chiksilog
    <br>
    <input name='ps[]' type='checkbox' value='45 |Porksilog'/>Porksilog
    <br>
    <input type="submit" name="go" value= "Total">
</form>


<?php 
//tosilog
    $ts = $_POST['ts'];
    $value = explode("|",$ts[0]);
    echo $value[0];
    echo $value[1];


//chiksilog
    $cs = $_POST['cs'];
    $value = explode("|",$cs[0]);
    echo $value[0];
    echo $value[1];


//porksilog
    $ps = $_POST['ps'];
    $value = explode("|",$ps[0]);
    echo $value[0];
    echo $value[1];

?>
    <!-- compute for the 1st value on checkbox -->  
 <?php

            $ts=$_POST['ts[0]'];
            $cs=$_POST['cs[0]'];
            $ps=$_POST['ps[0]'];

?>


    <?php $compute = $ts[0] + $cs[0] + $ps[0];?>

    <?php echo "$compute " ; ?>
4

2 に答える 2

0

http://www.laprbass.com/RAY_temp_miggy.phpを参照してください。
これはおそらく、私が行う方法に沿ったものです。スクリプトはHTMLに何が入るかを知っており、POSTリクエストで何を期待するかを正確に知っています。さまざまな入力を簡単に追加または削除できます。多くの場合、これらの種類の入力はデータベーステーブルから取得されます。

<?php // RAY_temp_miggy.php
error_reporting(E_ALL);

$total  = 0;

// EXPECTED INPUTS
$inputs = array
( 'Tosilog'   => 40
, 'Chiksilog' => 40
, 'Porksilog' => 45
)
;

if (!empty($_POST))
{
    // ACTIVATE THIS TO SEE WHAT WAS SUBMITTED
    // var_dump($_POST);

    // SUM OF THE ELEMENTS
    $total = array_sum($_POST);
    echo "TOTAL: $total";

    // SUM OF THE EXPECTED INPUTS
    $expect = array_sum($inputs);
    if ($total != $expect) echo " BUT THERE MAY BE INCOMPLETE INPUTS!";

// END OF THE ACTION SCRIPT
}

// CREATE THE FORM
$checkboxes = NULL;
foreach ($inputs as $name => $value)
{
    $checkboxes
    .= '<input name="'
    . $name
    . '" type="checkbox" value="'
    . $value
    . '" />'
    . $name
    . '<br/>'
    . PHP_EOL
    ;
}
$form = <<<ENDFORM
<form method="post">
$checkboxes
<input type="submit" value= "Total">
</form>
ENDFORM;
echo $form;
于 2012-12-26T18:26:06.877 に答える
0

チェックボックス要素の配列を取得していて、それらが数値である場合は、array_sum()を使用できます。提案された構造を理解できるかどうかはわかりませんが、既存のフォーム構造に基づいたコードサンプルをここに示します。次に、これを簡単にするために、もう少し投稿します。エグゼクティブサマリー:このフォーム構造によって作成されるすべての変数は必要ありません。

<?php // RAY_temp_user193.php
error_reporting(E_ALL);

$total  = 0;
$inputs = array();
$errors = array();
if (!empty($_POST))
{
    if (!empty($_POST['ts']))
    {
        foreach ($_POST['ts'] as $ts)
        {
            $inputs[] = current(explode(' |', $ts));
        }
    }
    else
    {
        $errors[] = 'Tosilog';
    }

    if (!empty($_POST['cs']))
    {
        foreach ($_POST['cs'] as $cs)
        {
            $inputs[] = current(explode(' |', $cs));
        }
    }
    else
    {
        $errors[] = 'Chiksilog';
    }

    if (!empty($_POST['ps']))
    {
        foreach ($_POST['ps'] as $ps)
        {
            $inputs[] = current(explode(' |', $ps));
        }
    }
    else
    {
        $errors[] = 'Porksilog';
    }

    // IF ERRORS
    if (!empty($errors))
    {
        echo 'UNABLE TO PRINT COMPLETE TOTAL.  MISSING: ' . implode(',', $errors);
    }
    $total = array_sum($inputs);
    if ($total) echo "<br/>TOTAL: $total <br/>" . PHP_EOL;

// END OF THE ACTION SCRIPT
}

// CREATE THE FORM
$form = <<<ENDFORM
<form method="post">
<input name='ts[]' type='checkbox' value='40 |Tosilog'/> Tosilog
<br>
<input name='cs[]' type='checkbox' value='40 |Chiksilog'/>Chiksilog
<br>
<input name='ps[]' type='checkbox' value='45 |Porksilog'/>Porksilog
<br>
<input type="submit" value= "Total">
</form>

ENDFORM;
echo $form;
于 2012-12-26T17:45:35.133 に答える