Php 在复选框的多个值上计算第一个值
我在试着做一个计算机化的订购系统。我的问题是如何计算复选框上的第一个值。复选框上的第二个值将发布在订单摘要上 一旦我检查了所有这三个,它将计算菜单的总量,并在订单摘要上显示所选菜单。但我不知道如何显示总金额 有人能告诉我如何计算复选框上第一个值的总数吗Php 在复选框的多个值上计算第一个值,php,Php,我在试着做一个计算机化的订购系统。我的问题是如何计算复选框上的第一个值。复选框上的第二个值将发布在订单摘要上 一旦我检查了所有这三个,它将计算菜单的总量,并在订单摘要上显示所选菜单。但我不知道如何显示总金额 有人能告诉我如何计算复选框上第一个值的总数吗 <form method="post"> <input name='ts[]' type='checkbox' value='40 |Tosilog'/> Tosilog <br> &l
<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 " ; ?>
托西洛格
奇克西洛格
波克西洛格
如果您得到一个复选框元素数组,并且这些元素是数字的,那么可以使用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;
见
这可能更符合我的做法。脚本知道进入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;
Changeecho“$compute”代码>进入echo$compute代码>。它仍然不起作用。但总数仍然是0:(谢谢您,先生。我会先研究这段代码。但是所有选中的复选框也会显示菜单(chiksilog、tosilog、porksilog)。但它不会显示缺少的内容。一旦我选中了“porksilog”和“tosilog”,它将显示在订单列表上,但不会显示“chiksilog”缺少。但它解决了我显示总金额的问题。您可以选择忽略该部分。