2017-06-21 5 views
0

Vor allem Jungen, sorry für Englisch, nicht meine Mutterspracheproblem geometrische Figuren Rechner

Ich bin ein geometrische Figuren Rechner tue (Dreieck, Rechteck und Quadrat), so kann ich nur PHP und HTML verwenden. Mein Problem ist, wenn ich auf die Eingabe mit dem Wert 'Calcular' (in der Form innerhalb $ formularioTriangulo Variable) geklickt hat gibt mir das Ergebnis nicht, ist die Seite aktualisieren.

<?php 

class Calculando{ 

    public function recibiendo(){ 


    $figura = isset($_POST['figuraGeometrica']) ? $_POST['figuraGeometrica'] : NULL; 

     switch($figura){    
      case 'triangulo': //triangle case 

      $formularioTriangulo = "<h3>Calcular Area del Triangulo</h3><br> 

      <form method='POST'> 
      <table> 
       <tr><td>Introduzca la base del triangulo: <input type='text' name='base'></td></tr> 
       <tr><td>Introduzca la altura del triangulo: <input type='text' name='altura'></td></tr> 
       <tr><td><input type='submit' value='calcular'></td></tr> 
      </table> 
      </form> 
      "; 

      $base = isset($_POST['base']) ? $_POST['base'] : NULL; 
      $altura = isset($_POST['altura']) ? $_POST['altura'] : NULL;     

      echo $formularioTriangulo; 
      $result = ($base * $altura)/2; 

      echo $result; 

      break; 

      case 'rectangulo': //rectangle case 

      break; 

      case 'cuadrado': //square case 

      break;   
     } 
    } 
} 

$llamar = new Calculando(); 
$llamar->recibiendo(); 

?> 
<html> 

<head> 
    <title>Calculadora de Medidas</title> 
</head> 


<body> 
<br><br> 
<table> 
<form method="POST"> 

    <h3>Calculadora de Figuras Geom&eacute;tricas</h3> 
    <tr> 
     <select name="figuraGeometrica"> 
      <option value="na"></option> 
      <option value="triangulo">Triangulo</option> 
      <option value="rectangulo">Rectangulo</option> 
      <option value="cuadrado">Cuadrado</option> 
     </select> 
    </tr> 
    <tr> 
     <td><input type="submit" value="Enviar"></td> 
    </tr> 

</form> 
<table> 
</body> 


</html> 

Antwort

0

So scheint es, Ihre Switch-Anweisung falsch ist, es sei denn die Post Variable 'figuraGeometrica' einen Wert hat. Sobald Sie die Daten Ihres Dreiecks über das Formular hochgeladen haben, das vom ersten Post generiert wurde, müssen Sie auch das 'figuraGeometrica' für das Dreieck posten, sonst überspringen Sie die gesamte Aussage.

Hier ist ein Fix für Ihren bestehenden Code, um das Dreieck mit einem versteckten Formularwert arbeiten zu lassen. Wenn Sie auf diese Weise vorgehen, müssen Sie dies beim Generieren ihrer Formulare für die anderen Formen tun, aber ändern Sie den Wert in die entsprechende Form. :)

<?php 

class Calculando{ 

    public function recibiendo(){ 


    $figura = isset($_POST['figuraGeometrica']) ? $_POST['figuraGeometrica'] : NULL; 

     switch($figura){    
      case 'triangulo': //triangle case 

      $formularioTriangulo = "<h3>Calcular Area del Triangulo</h3><br> 

      <form method='POST'> 
      <input type='hidden' name='figuraGeometrica' value='triangulo'> 
      <table> 
       <tr><td>Introduzca la base del triangulo: <input type='text' name='base'></td></tr> 
       <tr><td>Introduzca la altura del triangulo: <input type='text' name='altura'></td></tr> 
       <tr><td><input type='submit' value='calcular'></td></tr> 
      </table> 
      </form> 
      "; 

      $base = isset($_POST['base']) ? $_POST['base'] : NULL; 
      $altura = isset($_POST['altura']) ? $_POST['altura'] : NULL;     

      echo $formularioTriangulo; 
      $result = ($base * $altura)/2; 

      echo $result; 

      break; 

      case 'rectangulo': //rectangle case 

      break; 

      case 'cuadrado': //square case 

      break;   
     } 
    } 
} 

$llamar = new Calculando(); 
$llamar->recibiendo(); 

?> 
<html> 

<head> 
    <title>Calculadora de Medidas</title> 
</head> 


<body> 
<br><br> 
<table> 
<form method="POST"> 

    <h3>Calculadora de Figuras Geom&eacute;tricas</h3> 
    <tr> 
     <select name="figuraGeometrica"> 
      <option value="na"></option> 
      <option value="triangulo">Triangulo</option> 
      <option value="rectangulo">Rectangulo</option> 
      <option value="cuadrado">Cuadrado</option> 
     </select> 
    </tr> 
    <tr> 
     <td><input type="submit" value="Enviar"></td> 
    </tr> 

</form> 
<table> 
</body> 


</html> 
+0

Sie sagen also, Formular eingeben, um sichtbar zu bleiben, wenn FiguraGeometrica ist gleich dem Fall in der Schalter? –

+0

Anfangs habe ich nur die Variable gepostet, die den Code enthält, um das Formular richtig zu zeichnen. Um Verwirrung zu vermeiden, bearbeite ich es und füge eine funktionierende Version deines ursprünglichen Posts ein. –

+0

'' –