2014-05-02 66 views
1

我不知道我是否做錯了,但讓我們說我有這個。

formulario.php

<? session_start(); 
    $_SESSION['promedio'] = $number; 
    echo ' 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
    <html> 

    <meta content="text/html; charset=utf-8" http-equiv=Content-Type> 
    <body> 
    <form action="main3.php" method="post"> 

    Número de Encuestas <input type="number" name="number"> 
    <input type="submit" value="Enviar"/> 

    </form> 
    </body> 
    </html> '; 

    ?> 

現在,main3.php

<? 
    session_start(); 

    $number = $_POST['number']; 
    $_SESSION['promedio'] = $number; 


    function Calcular($edades, $estado_civil, $genero){ 
    global $number; 
foreach($edades as $edad){} 
echo "El promedio de edad general es: ".((array_sum($edades))/$number)."<br>"; 


$x; 
$y; 
$z; 
$w; 
$v; 
$u; 
$t; 
foreach ($genero as $i) { 
    foreach ($i as $j) { 
     if($j == "Hombres") 
     { 
      $u++; 
     } 
     if($j == "Mujeres") 
     { 
      $t++; 
     } 
     $count_values[$j]++; 
    } 
} 
echo "Cantidad de hombres: ".$u."<br>", 
    "Cantidad de mujeres: ".$t."<br>"; 
foreach ($estado_civil as $a) { 
    foreach ($a as $b) { 
     if($b == "Soltero") 
     { 
      $x++;; 
     } 
     if($b == "Casado") 
     { 
      $y++; 
     } 
     if($b == "Separado") 
     { 
      $z++; 
     } 
     if($b == "Libre") 
     { 
      $w++; 
     } 
     if($b == "Viudo") 
     { 
      $v++; 
     } 
     $count_values[$b]++; 
    } 
} 
echo "Cantidad de personas solteras: ".$x."<br>", 
    "Cantidad de personas casadas: ".$y."<br>", 
    "Cantidad de personas separadas: ".$z."<br>", 
    "Cantidad de personas en unión libre: ".$w."<br>", 
    "Cantidad de personas viudas: ".$v."<br>"; 

    } 

    echo '<form type="submit" action="resultados.php" method="post">'; 
    for ($i=0; $i < $number; $i++) { 

    echo ' 
    <html> 
    <h2>Datos de la persona '.$i.'</h2> 
    Edad <input type="number" name="edades[]"/> <br><br> 
    Sexo <br><br> 
    <input type="radio" name="genero['.$i.'][]" value="Hombres"/> Masculino <br> 
    <input type="radio" name="genero['.$i.'][]" value="Mujeres"/> Femenino <br><br> 
    Estado Civil <br><br> 
    <input type="radio" name="estado_civil['.$i.'][]" value="Soltero"/> Soltero <br> 
    <input type="radio" name="estado_civil['.$i.'][]" value="Casado"/> Casado <br> 
    <input type="radio" name="estado_civil['.$i.'][]" value="Separado"/> Separado <br> 
    <input type="radio" name="estado_civil['.$i.'][]" value="Libre"/> Unión Libre <br> 
    <input type="radio" name="estado_civil['.$i.'][]" value="Viudo"/> Viudo <br><br> '; 
    } 

    echo ' 
    <input type="submit"> 
    </form> 
    </html> '; 

    ?> 

最後文件resultados.php

<? 
include ("main3.php"); 
echo Calcular($_POST['edades'], $_POST['estado_civil'], $_POST['genero']); 

?> 

所以,正如你所看到的,我把$變量稱爲函數,這就是問題所在。它一直說我除以零,這意味着$ number不通過保存價值$ _SESSION當我打電話給平均()。我有一些事情要做到這一點,但沒有運氣。

任何建議或幫助關於我失蹤將不勝感激。

+2

'$ number'變量未在函數範圍內定義:http://www.php.net/manual/en/language.variables.scope.php – jeroen

+0

您的代碼甚至不使用會話,儘管它看起來像。 – hobbs

+0

@jeroen我用_global_嘗試過,並沒有工作。 –

回答

10

問題是,當您將main3.php中的表單提交到resultados.php時,沒有number輸入。您可以在第二個窗體添加它作爲一個隱藏的輸入:

echo '<form type="submit" action="resultados.php" method="post">'; 
echo "<input type='hidden' name='number' value='$number'>"; 

而且,你不應該在main3.phpfor環路輸出<html>

+0

我之前嘗試過,並且沒有使用_global_方法。真的,我知道變量作用域是一件簡單的事情,但也不起作用。 –

+0

上次有人說這是因爲他們把'global'聲明放在函數之外。它必須在功能中。 – Barmar

+0

相信我,我可以對PHP非常新但不是那一點。我在函數中定義了_global_並且沒有工作。 –