如何将表单的值的总和分享给PHP脚本

问题描述 投票:-2回答:2

我有一个多个复选框的形式,每个对应的数值。我希望PHP只显示已选中复选框的值的总和。如果复选框1的值为80;复选框2有21;和复选框三有15;然后作为一个例子,如果用户只选中了复选框3和2,那么PHP必须输出36。

这是我到目前为止,关于HTML和CSS代码https://jsfiddle.net/nerdfighter/tmz1ymeL/4/(jsFiddle)任何帮助将不胜感激!谢谢

<form action="index.php" method="get"/> 

PHP:

$val = 0;
if(isset($_POST['chck1']){
    $val += $_POST['chck1'];
}
if(isset($_POST['chck2']){
    $val += $_POST['chck2'];
}
if(isset($_POST['chck3']){
    $val += $_POST['chck3'];
}
echo $val;
javascript php html checkbox
2个回答
2
投票

在您的HTML更改method="post"和字段名称应为checkbox[]

    <form action="index.php" method="post"/>
        <h1><a name = "VEGETABLES">VEGETABLES</a></h1><br>
        <h3>Carrots</h3>
        <label><input type="checkbox" name="checkbox[]" id="outside" class="sum" value="80" data-toggle="checkbox">Market Value Carrots</label><br>
        <label><input type="checkbox" name="checkbox[]" id="outside" class="sum" value="21" data-toggle="checkbox">Chantenay Carrots</label><br>
        <label><input type="checkbox" name="checkbox[]" id="outside" class="sum" value="15" data-toggle="checkbox">Loose Carrots</label><br>
        <input type="submit" value="SAD TRUTH"/>
    </form>

在你的index.php中:

    <?php
    if($_POST){
        $val = 0;
        foreach($_POST['checkbox'] as $checkbox){
            $val += $checkbox;
        }
        echo $val;
    }
    ?>

0
投票

您首先会遇到麻烦,因为您正在访问$_POST数组中的数据,但您的表单方法是method="get",因此您应该使用$_GET(或将您的表单方法更改为method="post"

对于复选框,您应该按照name中的描述更改PHP Multiple Checkbox Array属性,因此它类似于:

<h3>Carrots</h3>
<label><input type="checkbox" name="carrots[]" class="sum" value="81" data-toggle="checkbox">Market Value Carrots</label><br>
<label><input type="checkbox" name="carrots[]" class="sum" value="88" data-toggle="checkbox">Chantenay Carrots</label><br>
<label><input type="checkbox" name="carrots[]" class="sum" value="80" data-toggle="checkbox">Loose Carrots</label><br>

<h3>Cucumber</h3>
<label><input type="checkbox" name="cucumbers[]" class="sum" value="82" data-toggle="checkbox">Cucumber Portion</label><br>
<label><input type="checkbox" name="cucumbers[]" class="sum" value="80" data-toggle="checkbox">Cucumber Whole</label><br>

然后在PHP中你可以获得像$carrots = $_POST['carrots']这样的数据,所以$carrots将是你可以循环并对值求和的所有已检查值的数组。

(此外,您应该删除/更改所有输入的id="outside",因为HTML中的ID应该是页面唯一的 - Does ID have to be unique in the whole page?以获取更多信息)

© www.soinside.com 2019 - 2024. All rights reserved.