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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (108)

我试图使用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>');

}

?>
提问于
用户回答回答于

正是这个部分让它表现得出乎意料:

$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>');
}
用户回答回答于

你还没有给radio boxes增加值,然后将你的radio boxes名称更改为与另一个相同,例如

<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'];
}

扫码关注云+社区

领取腾讯云代金券