我尝试使用表单使用PHP和HTML制作平方根计算器。但它似乎没有得到输出声明。这是:
<?php
$num = $_POST['getroot'];
$pull_sqrt = print(sqrt($num));
print("The Square root of "$num"is "$pull_sqrt);
?>
<form action="root.php" method="post">
<input type="text" id="getroot" value="Number"/>
<input type="submit" id="submitroot" value="Calculate"/>
</form>
for root.php:
<?php
$num = $_POST['getroot'];
$pull_sqrt = print(sqrt($num));
print("The Square root of "$num"is "$pull_sqrt);
?>
请帮我解释一下,我还不知道PHP是否允许sqrt();作为一个功能了。任何重新编辑的方式都很好,我想解释一下解决这个问题。谢谢!
答案 0 :(得分:2)
您没有名为getroot
您想要<input type="text" id="getroot" name="getroot" value="Number"/>
您不能只依赖id
。 POST需要一个名为&#34;命名的&#34;元件。
您还错过了print("The Square root of "$num"is "$pull_sqrt);
旁注: 从print
移除$pull_sqrt = print(sqrt($num));
,否则它将以1
回显。
DO
print("The Square root of " . $num . "is " .$pull_sqrt);
由于您在一个页面中使用此功能,因此您需要使用isset()
并使用action=""
。
<?php
if(isset($_POST['submit'])){
$num = $_POST['getroot'];
$pull_sqrt = sqrt($num);
print("The Square root of " . $num . " is " . $pull_sqrt);
}
?>
<form action="" method="post">
<input type="text" id="getroot" name="getroot" placeholder="Enter a number"/>
<input type="submit" name="submit" id="submitroot" value="Calculate"/>
</form>
您还可以使用is_numeric()
检查它是否实际上是已输入的数字。
<?php
if(isset($_POST['submit'])){
if(is_numeric($_POST['getroot'])){
$num = (int)$_POST['getroot'];
$pull_sqrt = sqrt($num);
print("The Square root of " . $num . " is " . $pull_sqrt);
// Yes, you can do the following:
$pull_sqrt = print($num * $num); // added as per a comment you left, but deleted.
}
else{
echo "You did not enter a number.";
}
}
?>
<form action="" method="post">
<input type="text" id="getroot" name="getroot" placeholder="Enter a number"/>
<input type="submit" name="submit" id="submitroot" value="Calculate"/>
</form>