我尝试创建一个基本的计算器,这完全有效,但我需要验证字段。我'尝试if()
,但PHP忽略了这一点。如果字段为空,则不显示该文章'完成所有字段'并执行function operadora();
生成的结果0.
我做错了什么?
抱歉我的英语不好:(
这是表格:
<form action="calcular.php" method="post">
<input name="valor1" type="number">
<select name="operacion" id="">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input name="valor2" type="number">
<input type="submit" name="enviar" value="enviar">
</form>
这是php代码:
<?php
if(isset($_POST['enviar'])){
if(!isset($_POST['valor1']) ||
!isset($_POST['valor2'])){
echo 'complete all fields';
}
else{
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operacion = $_POST['operacion'];
operadora($operacion,$valor1,$valor2);
}
}
function operadora($operador, $valor1, $valor2){
if(!strcmp($operador,"+")){
$resultado = $valor1+$valor2;
echo $resultado;
}
if(!strcmp($operador,"-")){
$resultado = $valor1-$valor2;
echo $resultado;
}
if(!strcmp($operador,"*")){
$resultado = $valor1*$valor2;
echo $resultado;
}
if(!strcmp($operador,"/")){
$resultado = $valor1/$valor2;
echo $resultado;
}
};
?>
答案 0 :(得分:2)
使用 empty()来检查字段,因为当您发送空表单字段时总是会设置。
if (!empty($_POST['valor1')
&& !empty($_POST['valor2'])
&& !empty($_POST['operacion'])) {
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operaction = $_POST['operaction'];
operadora($operaction, $valor1, $valor2);
} else {
echo 'Complete all fields';
}
<强>的strcmp()强> strcmp在字符串相等时返回0, 所以你需要使用if语句
if (strcmp($operador, "+") == 0) {
$resultado = $valor1 + $valor2;
echo $resultando;
}
我更喜欢这种操作的switch语句。
function operadora($operador, $valor1, $valor2)
{
$resultado = 0;
switch($operador) {
case '+':
$resultado = $valor1 + $valor2;
break;
case '-':
$resultado = $valor1 - $valor2;
break;
case '*':
$resultado = $valor1 * $valor2;
break;
case '/':
$resultado = $valor1 / $valor2;
break;
}
echo $resultado;
}
答案 1 :(得分:0)
试试这个
if(isset($_POST['enviar']))
{
if(isset($_POST['valor1']) && isset($_POST['valor2']))
{
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$operacion = $_POST['operacion'];
operadora($operacion,$valor1,$valor2);
}
else
{
echo 'complete all fields';
}
}