球的面积和周长有2个复选框

时间:2016-09-25 03:46:57

标签: php html arrays forms checkbox

我有一个带有2个checboxes的表单的html文件,我想计算球的面积和周长,但表单不会返回任何值......

HTML文件:

 <!DOCTYPE html>
<html>
<head>
<title>Ball</title>
<meta charset="UTF-8">
</head>
<body>
<form action="test.php" method="post">

Enter radius: <br><br>
<input type="text" name="radius"> <br><br>

    Area:
<input type="checkbox" name="check_list[]" value="value 1"><br>
    Circumference:
<input type="checkbox" name="check_list[]" value="value 2"><br>

<button type="submit">Calculate</button>
</form>

</body>
</html>

PHP文件(我使用了foreach循环):

<?php
$radius = $_POST['radius'];

if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) {

            if ($check == "0")
            {
                $result1 = 4*3.14*($radius*$radius);
                echo "Area: " . $result1."<br>";

            }
            if ($check == "1")
            {
                $result2 = 4/3*3.14*($radius*$radius*$radius);
                echo "Circumference: " . $result2 . "<br>";             
            }
}
?>

为什么它不起作用?我做错了什么?

2 个答案:

答案 0 :(得分:2)

您当前的面积和周长复选框值是&#34;值1和#34;和&#34;值2&#34;。这些是你在PHP代码中获得的值。

因此在if条件中检查这些值。即if($ check ==&#34; value 1&#34;)或if($ check ==&#34; value 2&#34;)。

但更好的做法是将值复选框更改为&#34; 0&#34;和&#34; 1&#34;。 它会更容易。

答案 1 :(得分:1)

为区域更改复选框项目的值为value =“0”,为圆周更改值=“1”

然后更改循环上的条件:

foreach($ _ POST ['check_list'] as $ option =&gt; $ check)