我想创建一个将华氏度转换为摄氏度的html页面。 html页面用于输入并显示结果,php页面进行实际计算。
我必须在标签Celsius内插入php页面返回的值。 这意味着我必须将数据发送到php页面,结果必须显示在无法修改的标签内。
<html>
<head>
<title>Convert</title>
</head>
<body>
<form action="convert.php" method="POST">
<label for="f">Fahrenheit</label>
<input type="text" name="fahrenheit" id="f" />
<br>
<br>
<label for="c">Celsius</label>
<input type="text" name="celsius" readonly="read" id="c" value= "<?php echo $celsius;?>" />
<br>
<br>
<input type="submit" name="conf" value="Confirm" />
<input type="reset" value="Reset" />
</form>
</body>
</html>
<?php
session_start();
if (isset($_POST['fahrenheit']) && is_numeric($_POST['fahrenheit'])) {
$fahrenheit = $_POST['fahrenheit'];
$celsius = ($fahrenheit - 32) * 5 / 9;
$_POST['celsius'] = (string) $celsius;
echo $_POST['celsius'];
} else {
echo "Only numbers";
}
header('Location: eyo.html');
return;
?>
答案 0 :(得分:1)
在一页中做所有事情,这就是我所做的:
<?php
if (isset($_POST['fahrenheit']) && is_numeric($_POST['fahrenheit']))
{
$fahrenheit=$_POST['fahrenheit'];
$celsius=($fahrenheit-32)*5/9;
}
else
{
echo "Only numbers";
}
?>
这就是我的PHP部分,将其粘贴在页面顶部。显然,将HTML中的Method设置为页面名称。然后将变量回显到celcius输入。你现在没有正确的答案:
<input type="text" name="celsius" readonly="read" id="c" value=echo "$celsius;" />
这是HTML而不是PHP。你需要像这样的PHP标签:
<input type="text" name="celsius" readonly="read" id="c" value="<?php echo $celsius; ?>" />
如果您将表单方法更改为当前页面,请实现我在HTML表单上方发布的代码,只要您的Web主机禁用屏幕错误,这将正常工作。根据需要调整以满足您的需求,但这至少是我开始发布celcius转换的方式。
答案 1 :(得分:1)
你需要编写一些代码来执行相反的操作,你需要编写一个POST操作,将celcius计算的结果发送给你的同一个&#34; convert.php&#34;您需要处理此新请求调用的页面。
请参阅以下有关如何在PHP中执行帖子的链接: POST data to a URL in PHP
然后在你的&#34; convert.php&#34;您修改接收如下参数的代码:
if (isset($_POST['celsius']) && is_numeric($_POST['celsius'])) {
$celsius = $_POST['celsius'];
}
您的HTML代码应该是:
<input type="text" name="celsius" readonly="read" id="c" value="<?php echo $celsius ?>" />
答案 2 :(得分:0)
如果你必须在2页内完成,我会考虑这样的方法:
表单页面(form-page.php):
<?php
$celsius = isset($celsius) ? $celsius : null;
?>
<html>
<head>
<title>Convert</title>
</head>
<body>
<form action="convert.php" method="POST">
<label for="f">Fahrenheit</label>
<input type="text" name="fahrenheit" id="f" />
<br>
<br>
<label for="c">Celsius</label>
<input type="text" name="celsius" readonly="read" id="c" value= "<?php echo $celsius;?>" />
<br>
<br>
<input type="submit" name="conf" value="Confirm" />
<input type="reset" value="Reset" />
</form>
</body>
</html>
转换页面(convert.php):
<?php
$celsius = null;
if(isset($_POST['fahrenheit']) )
{
if (is_numeric($_POST['fahrenheit']))
{
$fahrenheit = $_POST['fahrenheit'];
$celsius = ($fahrenheit-32)*5/9;
}
else
{
echo "Only Numbers Please!";
}
}
include('form-page.php');
?>
基本上我们将数据发布到转换页面,并在其后再次包含表单。表单页面检查$ celcius变量的定义。
正如其他评论所提到的,我相信使用AJAX或只是回到同一页面是一个更有效的解决方案,但是我们必须使用2页o.O。