使用HTML表单和PHP函数进行温度转换

时间:2018-08-02 12:54:50

标签: php html5

我正在尝试使用php转换deg-> c和c-> deg。目的是使用包含公式的函数,然后使用带有单选按钮和文本框的表单。用户应该能够在文本框中输入学位,单击他们选择的单选按钮(F或C),然后提交表格以接收其转换。我见过类似的帖子,但是方法并不特定于我遇到的问题。

我已经更新了代码,但现在正在获取“死亡白页” 谁能看到我看不到的错误?谢谢!

HTML

<h1>Temperature Conversion</h1>



<form action='lab_exercise_6.php' method ='POST'>
    <p>Enter a temp to be converted and then choose the conversion type below.</p>

<input type ='text' maxlength='3' name ='calculate'/>

 <p>Farenheit
  <input type="radio" name='convertTo' value="f" />
</p>

<p>Celsius
  <input type="radio" name='convertTo' value="c" />
</p>

<input type='submit' value='Convert Temperature' name='convertTo'/>

PHP

<?php

//function 1

function FtoC($deg_f) {
    return ($deg_f - 32) * 5 / 9;
  }

  //function 2
function CtoF($deg_c){
    return($deg_c + 32) * 9/5;
}

if( isset($_POST['convertTo']) && $_POST['convertTo'] ==="c" ){
$farenheit = FtoC($deg_f);
print('This temperature in FARENHEIT is equal to ' . $celsius . ' degrees celsius! </br>');
}else if(isset($_POST['convertTo'])&& $_POST['convertTo']==='f'){
    $celsius = CtoF($deg_c);
    print('This temperature in CELSIUS is equal to ' . $farenheit . ' degrees farenheit! </br>');

}

?>

3 个答案:

答案 0 :(得分:1)

这是使它的行为异常的部分:

$farenheit = FtoC($deg_f);
// And then a few lines lower:
if(isset($farenheit)){ /* ... */}

您在此处将其设置为一个值,因此它将始终尝试计算结果。
稍作调整,您将按预期使用更多单选按钮:

<input type="radio" name="convertTo" value="f" />
<input type="radio" name="convertTo" value="c" />

PHP中的值现在将始终具有相同的名称,您现在只需检查其值即可:

if( isset($_POST['convertTo']) && $_POST['convertTo']==="c" ){
    $farenheit = FtoC($deg_f);
    print('This temperature in FARENHEIT is equal to ' . $celsius . ' degrees celsius! </br>');
}

答案 1 :(得分:1)

您尚未向单选框添加值。

然后将您的无线电名称更改为其他名称,例如

<p>Farenheit
    <input type = 'radio' name ='temp_type' value='f'/>
</p>

<p>Celsius
    <input type = 'radio' name ='temp_type' value='c'/>
</p>

现在您可以使用PHP来访问它们。

if($_POST['temp_type'] && ($_POST['calculate']){
  $temp2calculate = $_POST['calculate'];
  $temp_type = $_POST['temp_type'];
}

答案 2 :(得分:1)

单选按钮的名称必须相同

    <p>Farenheit
        <input type = 'radio' value ='farenheit' name='units'/>
    </p>

    <p>Celsius
        <input type = 'radio' value ='celsius' name='units'/>
    </p>

检查是否选择了哪个单选按钮:

<?php
$units = $_POST['units'];
if($units == "fahrenheit"){
 //call function to convert to fahrenheit
}
else{
  //call function to convert to celsius
}
?>