PHP';循环';带有输入文本表单


PHP 'loop for' with input text form

我正在做一个程序,我必须插入一个数字("X"),这将生成"X"个"输入表单"来输入不同的数字,以便稍后计算一些运算。

我必须使用生成表单,然后通过带有$_POST的提交按钮将结果传递到下一页。然后,当我试图用的另一个来获得结果时,它不起作用,我会遇到一些问题。

注意:未定义的变量:num4在…

我做错了什么?

谢谢!

<?php
/*HERE I GET THE NUMBER TO CREATE "X" NUMBER OF FORMS*/
if (isset($_POST["num"]))
{   
$num=$_POST["num"];
$_POST["num"]=$num;
        if ( is_numeric($num) and $num>=0)
        {
           echo"<form action='"tercera.php'" method='"post'">"; 
            echo "Quina operació vols fer?:<br><br> "
                . "<input type='"radio'" name='"operacio'" value='"suma'"/>Suma "
                . "<input type='"radio'" name='"operacio'" value='"mitja'"/>Mitja"
                . "<input type='"radio'" name='"operacio'" value='"major'"/>Major"
                . "<input type='"radio'" name='"operacio'" value='"menor'"/>Menor</p>";

/*HERE I MAKE THE FOR LOOP TO GENERATE THE FORMS WITH "numero[$i]" */
            for ($i=1; $i<=$num; $i++)
            {
               echo" <input type=''text'' name=''numero[$i]'' maxlength=''10'' size='"10'"/>"; 
            }
            echo "<p><input type='submit' value='Calcula' /></p>";               
        }
        else
        {
            echo "<H3>Has d'escriure un numero mes gran que 0, torna-ho a intentar.";
        }
}//isset*/
?>
/*/ NEXT  PHP PAGE /*/
<?php
if (isset($_POST["operacio"])) $operacio=$_POST["operacio"];
//HERE I GET THE NUMBERS OF THE LAST PAGE
   for ($i=1; $i<=2; $i++)
   {
       if (isset($_POST["numero[$i]"])) $num2=$_POST["numero[$i]"] ;

//HERE IS WHERE I GET THE ERROR: Undefined variable: num2  
        echo $num2;       
    }

//this part is ok ...
        if ($operacio == "suma") 
        {
            echo "i equals 0";
        }
        elseif ($operacio == "mitja") 
        {
            echo "i equals 1";
        }
        elseif ($operacio == "major") 
        {
            echo "i equals 2";
        }
        elseif ($operacio == "menor") 
        {
            echo "i equals 3";
        }

        if ( is_numeric($num) and $num>=0)
        {
            for ($i=1; $i<=$num; $i++)
            {

            }
        }
        else
        {
            echo "<H3>Has d'escriure un numero mes gran que 0, torna-ho a intentar.";
        }
//isset*/
?>

在您的第二页中不要使用以下内容:

if (isset($_POST["numero[$i]"])) $num2=$_POST["numero[$i]"];

因为那个领域并不存在。当你使用字段数组时,你需要做的是得到字段,然后得到位置,例如,它可以工作:

if(isset($_POST["numero"]) && isset($_POST["numero"][$i])) $num2=$_POST["numero"][$i];

请记住,您使用的字段是一个数组。

如果您不想遇到数组中元素的麻烦,请使用它(在知道$_POST["numero]存在之后):

foreach($_POST["numero"] as $num)
{
    echo $num; // or waht you want to do.
}

我希望这对你有帮助。