带有输入文本格式的PHP'循环'

时间:2014-10-12 16:29:22

标签: php html forms

我正在做一个程序,我必须插入一个数字(“X”),这将产生“X”数量的“输入表格”,以便以后输入不同的数字,计算一些操作。

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

注意:未定义的变量:num4 in ...

我做错了什么?

谢谢!

<?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*/

?>

1 个答案:

答案 0 :(得分:0)

在你的第二页中不要使用它:

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.
}

我希望这对你有所帮助。