0

我试图制作一个计算机订购系统。我的问题是如何计算复选框上的第一个值。复选框上的第二个值将发布在订单摘要上。

一旦我检查了所有这三个,它将计算菜单的总量并在订单摘要上显示所选菜单。但我不知道如何显示总金额。

任何人都可以指导我如何计算复选框上我的第一个值的总数吗?

<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 回答