php:form不';t评估正确


php: form doesn't evaluate correctly

Newb试图制作一个简单的温度转换器,在其中输入数据,然后选择过滤器来处理日期。我以前从未使用过select,也不知道如何处理数据以仅显示所选的值。现在,如果你两个ferinheight和celcius都将打印到屏幕上。我只想打印下拉/选择中选择的值。

<?php
    if (isset ($_POST['submit'])){//data is subnmitted, show it
        //$myTemp = (int)$_POST['myTemp'];// make it an int
        $myTemp = (float)$_POST['myTemp'];// float more forving
        $F = $myTemp  *  9/5 + 32;
        $C = $myTemp  *  9/5 - 32;
        if ($myFilter == 'f'){echo $F . "&ordm; ferinheight";}
        if ($myFilter == 'c'){echo $C . "&ordm; Celcius ";}
    }else{
?>
<form action="02temp.php" method="post">
    Enter Value to convert: <input type="text" name="myTemp" />
    <br />
    Select data filter:
    <select name="myFilter">
      <option value="f">F&ordm;</option>
      <option value="c">C&ordm;</option>
    </select>
    <br /><br />
    <input type="submit" name="submit" /> <!--purposely blurred -->
</form>
<?php
     }
?>

您有几个错误:

1) 您忘记为$myFilter赋值。

 $myFilter = $_POST['myFilter']; // <-- You forgot this

2) 但是,即使您使用了赋值运算符(=),也可以在if语句中使用比较运算符(==),从而使两者都为真:

if ($myFilter = 'f'){echo $F . "&ordm; ferinheight";}
if ($myFilter = 'c'){echo $C . "&ordm; Celcius ";}

应该是

if ($myFilter == 'f'){echo $F . "&ordm; ferinheight";}
if ($myFilter == 'c'){echo $C . "&ordm; Celcius ";}