comunicacion entre clase y formulario

Iniciado por mag55, 9 Noviembre 2009, 18:02 PM

0 Miembros y 1 Visitante están viendo este tema.

mag55

hola, soy nuevo en esto , estoy viendo como pasar los resultados de un formulario a una clase para que esta los procesey devuelva el resultado, el problema es que creo que no me los pasa, ambos clase y formulario estan en archivos separados, les agradecre cualquier ayuda, aquí les dejo el codigo:

archivo FORMULARIO DE ENTREGA (formularioPruebai.php)

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
   <title>FORMULARIO DE PRUEBA</title>
   <meta http-equiv="content-type" content="text/html;charset=utf-8" />
   <meta name="generator" content="Bluefish 1.0.7"/>
</head>


FORMULARIO DE INGRESO DE DATOS

<body>

   <h1>Formulario prueba para ingresar datos</h1>
   
      <?php
         require_once ("prueba.php");
         $obj = new de_Prueba("mold_suelo", "mold");
         echo $obj->getPeso_suelo();      
      ?>
      
      <form action="formularioPruebai.php" method="POST">
      Peso de Molde y suelo:
         <input name="mold_suelo" type="text">
      Peso del Molde:
         <input name="mold" type="text">
      <p>
         <input type="submit" name="Submit" value="Enviar">
      </p>
      </form>
      
</body>
</html>

-----------------------------------------------------------------------------
archivo CLASE (prueba.php)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
   <title>sin título</title>
   <meta http-equiv="content-type" content="text/html;charset=utf-8" />
   <meta name="generator" content="Bluefish 1.0.7"/>
</head>

<body>

   <?php
      
      class de_Prueba
      {
         private $mold_suelo;
         private $mold;
         
         function __construct($mold_suelo, $mold)
         {
            $this-> setPeso_suelo($mold_suelo, $mold);
         }
         
         public function setPeso_suelo($mold_suelo, $mold)
         {
            $this->mold_suelo = $mold_suelo;
            $this->mold = $mold;
         }
         
         public function getPeso_suelo()
         {
            $resultado = $this->mold_suelo-$this->mold;
            return $resultado;
         }
   
      }
      
   ?>
   
</body>
</html>


:ohk<any>

No veo ninguna variable que reciba los datos que envias...
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

HardieVon

hahaha.

$obj->Metodo_procesador("Tus Datos");

Kasi

Cuando envias el formulario de nuevo a esa página te falta algo para recoger lo que has enviado.

Algo asi...


<?php 
     $mold_suelo 
$_REQUEST['mold_suelo'];
     
$mold $_REQUEST['mold'];
?>


Luego en la creación del objeto le pasas esas dos variables

$obj = new de_Prueba($mold_suelo, $mold);


Con eso deberia recibir sin problemas los datos.

Un saludo

mag55

gracias gente ya funciona, hice lo que dijeron, pero ahora hace akgo extraño, cuando se carga el formulario por primera vez y solo por primera vez sale esto:

Notice: Undefined index: mold_suelo in /opt/lampp/htdocs/formularioPruebai.php on line 38

Notice: Undefined index: mold in /opt/lampp/htdocs/formularioPruebai.php on line 38

en esa linea esta esto

$obj = new de_Prueba($_POST["mold_suelo"], $_POST["mold"]);

luego cuando ingreso los numeros y le doy enviar hace el calculo sin problemas y estas advertencias desaparecen y puedo seguir ingresando numeros y haciando el calculo si que esto vuelva a aparecer, si saben que puede ser se los agradecere
saludos y gracias

Karman

prueba preguntando si las variables existen...

Código (php) [Seleccionar]
if(isset( $var )){
...
}


S2

Kasi

Eso te sucede cuando cargas por primera vez y esas variables no están definidas.
Utiliza lo que ha puesto Karman justo encima
if(isset($_POST['la variable que sea']){
       ....
       ....
       ....
}