如何在PHP阶乘程序中返回值
我正在为阶乘计划做一项作业。有一点我很惊讶 Fact.php如何在PHP阶乘程序中返回值,php,Php,我正在为阶乘计划做一项作业。有一点我很惊讶 Fact.php <html> <body> <form action="FactCalc.php" method="post"> Enter a Number: <input type="text" name="number"> <input type="submit" Value="Calculate Factorial"> </form> </body> &l
<html>
<body>
<form action="FactCalc.php" method="post">
Enter a Number: <input type="text" name="number">
<input type="submit" Value="Calculate Factorial">
</form>
</body>
</html>
<?php
if(isset($_POST["number"]))
{
$num = $_POST["number"];
$factorial = 1;
for ($x=$num; $x>=1; $x--)
{
$factorial = $factorial * $x;
}
}
else
$factorial = "";
?>
<html>
<body>
<form action="" method="post">
Enter a Number: <input type="text" name="number">
<input type="submit" Value="Calculate Factorial">
<?php
if($factorial)
echo "Factorial of $num is $factorial";
?>
</form>
</body>
</html>
输入一个数字:
FactCalc.php
<?php
$num = $_POST["number"];
$factorial = 1;
for ($x=$num; $x>=1; $x--)
{
$factorial = $factorial * $x;
}
echo "Factorial of $num is $factorial";
?>
这个程序运行良好。我想将$factorial返回到Fact.php,并在文本框下面显示它。我有点被打动了,你能帮个忙吗。你可以使用AJAX,但这里有一个简单的方法,希望你能有一个想法
<?php
$result="";
if(isset($_POST['ispost']) && $_POST['ispost']=="y"){
$num = $_POST["number"];
$factorial = 1;
for ($x=$num; $x>=1; $x--)
{
$factorial = $factorial * $x;
}
$result="Factorial of ".$num." is ".$factorial;
}
?>
<html>
<body>
<form action="" method="post">
<input type="hidden" name="ispost" value="y" />
Enter a Number: <input type="text" name="number" />
<input type="submit" value="Calculate Factorial /">
</form>
<?php print($result); ?>
</body>
</html>
输入一个数字:
输入一个数字:
您可以这样做
Fact.php
<html>
<body>
<form action="FactCalc.php" method="post">
Enter a Number: <input type="text" name="number">
<input type="submit" Value="Calculate Factorial">
</form>
</body>
</html>
<?php
if(isset($_POST["number"]))
{
$num = $_POST["number"];
$factorial = 1;
for ($x=$num; $x>=1; $x--)
{
$factorial = $factorial * $x;
}
}
else
$factorial = "";
?>
<html>
<body>
<form action="" method="post">
Enter a Number: <input type="text" name="number">
<input type="submit" Value="Calculate Factorial">
<?php
if($factorial)
echo "Factorial of $num is $factorial";
?>
</form>
</body>
</html>
输入一个数字:
您不能在FactCalc.php和Fact.php之间“共享”变量,这是一个支持AJAX的更具说服力的解决方案。这个答案预测了“$”的潜在冲突问题,以及jQuery.get或post的潜在缓存问题
Fact.php:
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0.min.js"></script>
</head>
<body>
<form action="" method="post">
<input type="hidden" name="ispost" value="y" />
Enter a Number: <input type="text" name="number" id="number" />
<input type="button" id="factorial_button" value="Calculate Factorial /">
</form>
<script>
jQuery(document).ready(function(){
jQuery("#factorial_button").click(function(){
var number = jQuery("#number").val();
jQuery.ajax({
url: "FactCalc.php",
type: "POST",
data: {
"number":number,
},
dataType : "html",
cache: false,
beforeSend: function () {
jQuery("#result").html("retrieving information...");
},
success: function( data ) {
jQuery("#result").html(data);
},
error: function( xhr, status, errorThrown ) {
jQuery("#result").html("Ajax error");
}
});
});
});
</script>
<div id="result"></div>
</body>
</html>
Fact.php:
输入一个数字:
jQuery(文档).ready(函数(){
jQuery(“#阶乘按钮”)。单击(函数(){
var number=jQuery(“#number”).val();
jQuery.ajax({
url:“FactCalc.php”,
类型:“POST”,
数据:{
“数字”:数字,
},
数据类型:“html”,
cache:false,
beforeSend:函数(){
jQuery(“#result”).html(“检索信息…”);
},
成功:功能(数据){
jQuery(“#result”).html(数据);
},
错误:函数(xhr、状态、错误抛出){
jQuery(“#result”).html(“Ajax错误”);
}
});
});
});
FactCalc.php:
<?php
$num = $_POST["number"];
$factorial = 1;
for ($x=$num; $x>=1; $x--)
{
$factorial = $factorial * $x;
}
echo "Factorial of $num is $factorial";
?>
**试试这个非常容易使用的阶乘**
函数阶乘($number){
如果($number<2){
返回1;
}否则{
返回($number*阶乘($number-1));
}
}
选中此处将表单的
操作
属性保留为空,并让表单自行发布。在文本框下创建一个
,为其分配一个ID,并根据需要设置样式。现在在
中输出$num
。简单!谢谢你,吉尔卡。这很有帮助。虽然这个代码片段可以解决这个问题,但确实有助于提高您的文章质量。请记住,您是在为将来的读者回答这个问题,而这些人可能不知道您的代码建议的原因。@bono这是一个完美的答案,可以在phpI中轻松使用和执行。您知道它是,但您也必须考虑到未来的读者;)
function factorial($number) {
if ($number < 2) {
return 1;
} else {
return ($number * factorial($number-1));
}
}