我正在尝试创建一个BMI计算器。这应该允许人们使用公制或英制。
我意识到我可以使用隐藏标签来解决问题,但是以前这使我很头疼,所以我想问一下:我可以$_POST['variableName']用来查找提交的variableName字段值;但是…我不知道,也不知道如何验证 用于 提交变量的表单。
$_POST['variableName']
我的代码如下(尽管我不确定它是否与问题严格相关):
<?php $bmiSubmitted = $_POST['bmiSubmitted']; if (isset($bmiSubmitted)) { $height = $_POST['height']; $weight = $_POST['weight']; $bmi = floor($weight/($height*$height)); ?> <ul id="bmi"> <li>Weight (in kilograms) is: <span><?php echo "$weight"; ?></span></li> <li>Height (in metres) is: <span><?php echo "$height"; ?></span></li> <li>Body mass index (BMI) is: <span><?php echo "$bmi"; ?></span></li> </ul> <?php } else { ?> <div id="formSelector"> <ul> <li><a href="#metric">Metric</a></li> <li><a href="#imperial">Imperial</a></li> </ul> <form name="met" id="metric" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="form/multipart"> <fieldset> <label for="weight">Weight (<abbr title="Kilograms">kg</abbr>):</label> <input type="text" name="weight" id="weight" /> <label for="height">Height (<abbr title="metres">m</abbr>):</label> <input type="text" name="height" id="height" /> <input type="hidden" name="bmiSubmitted" id="bmiSubmitted" value="1" /> </fieldset> <fieldset> <input type="reset" id="reset" value="Clear" /> <input type="submit" id="submit" value="Submit" /> </fieldset> </form> <form name="imp" id="imperial" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="form/multipart"> <fieldset> <label for="weight">Weight (<abbr title="Pounds">lbs</abbr>):</label> <input type="text" name="weight" id="weight" /> <label for="height">Height (Inches):</label> <input type="text" name="height" id="height" / <input type="hidden" name="bmiSubmitted" id="bmiSubmitted" value="1" /> </fieldset> <fieldset> <input type="reset" id="reset" value="Clear" /> <input type="submit" id="submit" value="Submit" /> </fieldset> </form> <?php } ?>
我通过metric验证了它的有效性(尽管目前尚无验证-我不想让我的问题太多)。我已经添加了表格,但是还没有为帝国处理。
要标识提交的表单,可以使用:
表单的名称不会作为POST数据的一部分发送到服务器。
您可以按照以下方式使用代码
<form name="myform" method="post" action="" enctype="multipart/form-data"> <input type="hidden" name="frmname" value=""/> </form>