我正在尝试使用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>');
}
?>
答案 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
}
?>