如何在PHP Factorial Program中返回一个值

时间:2014-05-06 17:59:08

标签: php

我正在为Factorial Program工作。我有一点感到震惊。

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>

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并在文本框下方显示它。我很震惊,你能帮忙吗。

6 个答案:

答案 0 :(得分:2)

<?php
if (isset($_POST["number"]))
{
  $_POST["number"] = ($_POST["number"] * 1);
  include "FactCalc.php";
}  
?> 

<form action="FactCalc.php" method="post">      
  <p>
    Enter a Number: 
    <input type="text" name="number">
    <input type="submit" Value="Calculate Factorial"> 

  <?php
  if (isset($factorial))
  {
    echo "</p><p>Factorial of $num is $factorial";
  }
  ?>
  </p>
</form>

答案 1 :(得分:1)

你可以使用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>

答案 2 :(得分:1)

这是启用AJAX,更有说服力的解决方案。这个答案预测了&#34; $&#34;的潜在冲突问题,以及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>

FactCalc.php:

<?php
$num = $_POST["number"];
$factorial = 1;

for ($x=$num; $x>=1; $x--)
{
    $factorial = $factorial * $x;
}

echo "Factorial of $num is $factorial";
?>

答案 3 :(得分:0)

你可以做这样的事情

Fact.php

<?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之间的变量

答案 4 :(得分:0)

**try this very easy to use this factorial**
<?php
    $fact=1;
    for($i=5;$i>=1;$i--)
    {
    $fact=$fact*$i;


    }

    echo $fact;
?>

答案 5 :(得分:0)

    function factorial($number) { 

        if ($number < 2) { 
            return 1; 
        } else { 
            return ($number * factorial($number-1)); 


 } 
}

在此处检查code demo