Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP阶乘程序中返回值_Php - Fatal编程技术网

如何在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

我正在为阶乘计划做一项作业。有一点我很惊讶

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

<?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)); 


 } 
}