SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: sheilac en Martes 11 de Marzo de 2008, 23:30

Título: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: sheilac en Martes 11 de Marzo de 2008, 23:30
Hola disculpen este preguntando tanto.
Estuve buscando en la web y por ahora no encontre nada similar.
Tengo que llenar tres formularios, luego de llenar uno  con el boton aceptar me lleva al otro formulario y asi sucesivamente.
Esto ya esta andando bien ahora lo que se me pide es que si por ejemplo estoy en el segundo formulario y quiero volver al primero no perder los datos de este segundo formulario y asi con el tercero si vuelvo al segundo o primer formulario no perder los datos de ningun formulario.   :o
Alguien conoce algun ejemplo o explicacion en la web?? que pueda leer?
Porque voy a paginas diferentes y debo mantener los datos  :(
Desde ya muchas gracias.
Título: Re: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: Mollense en Miércoles 12 de Marzo de 2008, 03:12
Busca sobre el uso de "sesiones". En este mismo foro ya hay mucho sobre el tema.

Un saludo
Título: Re: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: grandzam en Miércoles 12 de Marzo de 2008, 07:05
Hola, pues yo hice algo asi pero lo que hice fué esconder o mostrar formularios dependiendo del boton que presionara... eso lo hice con javascript...mediante capas con las <div>...

Por ejemplo puedes tener algo como esto:

Código: Text
  1. &#60;form id=&#34;formulario1&#34; name&#34;algo&#34;&#62;
  2. &#60;div id=&#34;cuestionario1&#34;&#62;
  3.      &#60;table&#62;
  4.          ...........
  5.      &#60;/table&#62;
  6. &#60;/div&#62;
  7. &#60;div id=&#34;cuestionario2&#34;&#62;
  8.       &#60;table&#62;
  9.           ...........
  10.       &#60;/table&#62;
  11. &#60;/div&#62;
  12. &#60;/form&#62;
  13.  
  14.  


En el método onload en la seccion del body puedas mandar llamar a un método (en OnLoad) en el que dispongas que divs vas a mostar inicialmente... incluso lo puedes hacer con los mismos botones(que botones aparecerán inicialmente)...

Código: Text
  1. &#60;script language=&#34;Javascript&#34;&#62;
  2. function mostrar(nombreCapa){
  3. document.getElementById(nombreCapa).style.visibility=&#34;visible&#34;;
  4. }
  5. function ocultar(nombreCapa){
  6. document.getElementById(nombreCapa).style.visibility=&#34;hidden&#34;;
  7. }
  8. &#60;/script&#62;
  9.  

Cada función recibe el nombre de cada capa y bueno pues puedes estar ahi jugando con eso...
para los botones x ejemplo, nadamás ponles un id y con esas mismas funciones los puedes ocultar o mostrar...

<input type="button" id="boton1">

De esa manera puedes estar mostrando partes del formulario sin que estes mandando los datos y perdiéndolos... por supuesto que tienes que estar haciéndo validaciones y después cuando todo este bien, mandar llamar a los métodos de ocultación y de desplegado de las otras partes...

No se si me haya explicado bien... si tienes dudas ps postea de nuevo... o tal vez alguién tiene una mejor solución... eso que te digo nadamás es una idea rápida de lo que puedes hacer pero ps puedes hacer otras cosas como guardar los datos en sessiones, o en campos ocultos que mandas de una página a otra y después los recivas y los muestre, etc....

Ha si te vas por esta opcion, los botones para ir de un lado a otro no los pongas con submit sino eso haría que mandaras datos al servidor y pierdes los datos... usa botones como los que te puse arriba más o menos asi:

<input type="button" id="boton1" OnClick"Validar()">

en el método de validar ps validas, jaja... y si todo esta bien mandas llamar a cualquiera de las funciones mostrar u ocultar, segun quieras hacer... ya cuando vayas a mandar todo el formulario entonces si usa submit y envias todo el formulario completo... al enviarlo envias todos los datos y los recibes en el servidor, weno ya tu has de saber... ojalá te sirva... adios...
Título: Re: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: Altareum en Miércoles 12 de Marzo de 2008, 17:16
Coincido con grandzam.. aunque le haría este pequeño cambio:

document.getElementById(nombreCapa).style.visibility="visible";

por:

document.getElementById(nombreCapa).style.display="block";

y para ocultarlo:

document.getElementById(nombreCapa).style.display="none";

Saludos.
Título: Re: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: sheilac en Jueves 13 de Marzo de 2008, 03:50
antes que nada muchas gracias por contestarme.
Sigo sin poder hacer la session, se ve que algo mal hago.
Para el loguin del sitio utilice session y esos datos si me los guarda en la pagina.
Ahora para estos formularios que estoy tratando de guardar las variables en session ahora:
inicio la session
Código: Text
  1.  
  2. session_start();
  3.  
y luego de la coneccion con la base de datos y demas declaro las variables de sesion

Código: Text
  1.  
  2. if (&#036;row = &#036;bd-&#62;get_next_row()){
  3.    &#036;_SESSION['sqmeters'] = &#036;row['SqMeters'];
  4.   &#036;_SESSION['floor'] = &#036;row['Floor'];
  5.   &#036;_SESSION['price'] = &#036;row['Price'];
  6.    &#036;_SESSION['bedrooms'] = &#036;row['Bedrooms'];
  7.   &#036;_SESSION['description'] = &#036;row['Description'];  
  8. }
  9.  
  10.  
pero no no hay caso no me las carga.
en el boton pongo esto
Código: Text
  1.  
  2. &#60;input name=&#34;price&#34; type=&#34;text&#34; class=&#34;Field&#34; id=&#34;price2&#34; style=&#34;width:167px&#34; value='&#60;? if(&#036;_POST['idProperty']!=&#34;&#34;) echo &#036;row['Price']; else echo &#036;_SESSION['price'];?&#62;' /&#62;&#60;/td&#62;
  3.  
  4.  
voy pasando de un formulario a otro y voy poniendo las variables en un input type hidden (las variables del formulario anterior)
Título: Re: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: sheilac en Jueves 13 de Marzo de 2008, 17:07
:(
no hay caso no puedo cn este tema de session
estuve leyendo en internet y creo lo hago bien pero sigo sin poder volver al formulario y mantener los datosl
el primer formulario pongo
Código: Text
  1.  
  2. session_start();
  3.  
  4.  
y en el boton donde deberia traerme el dato pongo esto
Código: Text
  1.  
  2. &#60;td&#62; &#60;input name=&#34;sq_meters&#34; type=&#34;text&#34; class=&#34;Field&#34; id=&#34;sq_meters&#34; style=&#34;width:167px&#34; value=&#34;&#60;? if (isset(&#036;_SESSION['sqmeters'])){ echo &#036;_SESSION['sqmeters']; }?&#62;&#34; /&#62;
  3.                         &#60;/td&#62;
  4.  
  5.  

en el formulario siguiente a este cargo las variables de session
inicio la session apenas entro
Código: Text
  1.  
  2.  
  3.  
  4. &#036;row = &#036;bd-&#62;get_next_row();
  5.  
  6.    &#036;_SESSION['sqmeters'] = &#036;_POST['sq_meters'];
  7.   &#036;_SESSION['floor'] = &#036;_POST['fl2'];
  8.   &#036;_SESSION['price'] = &#036;_POST['price2'];
  9.     &#036;_SESSION['bedrooms'] = &#036;_POST['bedrooms'];
  10.     &#036;_SESSION['description'] = &#036;_POST['description'];
  11.  
  12.  
  13.  

pero no hay caso no me trae el dato en el input estoy probando con un dato solo hasta lograrlo y llenarlo todos
alguien podria decirme que hago mal????
graciasssssss
Título: Re: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: Altareum en Viernes 14 de Marzo de 2008, 14:59
Pregunta.. tenes bien configurado el directorio donde debe guardar las sesiones ???
Si está mal configurado, y no ves los errores de php, nunca te vas a enterar...


Igualmente, no son necesarias las sesiones... Lo que te propuso grandzam, es que crees un formulario grande (con todos los datos). Y vayas ocultando y mostrando, según el "paso" que deba llenar el usuario.
Título: Re: No Perder Datos Del Formulario Al Ir A Otro
Publicado por: sheilac en Domingo 16 de Marzo de 2008, 20:53
Muchas gracias ya lo hice implementando sesiones.
Eran cinco formularios que ya estaban hecho y voy contra reloj. igual la opcion que me dieron la voy a tener en cuenta para otra vez.
Siempre se aprende algo nuevo  ;)