Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: mag55 en 9 Noviembre 2009, 18:02 PM

Título: comunicacion entre clase y formulario
Publicado por: mag55 en 9 Noviembre 2009, 18:02 PM
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>

Título: Re: comunicacion entre clase y formulario
Publicado por: :ohk<any> en 9 Noviembre 2009, 20:47 PM
No veo ninguna variable que reciba los datos que envias...
Título: Re: comunicacion entre clase y formulario
Publicado por: HardieVon en 9 Noviembre 2009, 23:19 PM
hahaha.

$obj->Metodo_procesador("Tus Datos");
Título: Re: comunicacion entre clase y formulario
Publicado por: Kasi en 10 Noviembre 2009, 17:20 PM
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
Título: Re: comunicacion entre clase y formulario
Publicado por: mag55 en 10 Noviembre 2009, 19:41 PM
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
Título: Re: comunicacion entre clase y formulario
Publicado por: Karman en 10 Noviembre 2009, 22:20 PM
prueba preguntando si las variables existen...

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


S2
Título: Re: comunicacion entre clase y formulario
Publicado por: Kasi en 10 Noviembre 2009, 22:28 PM
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']){
       ....
       ....
       ....
}