Foros del Web » Programando para Internet » PHP »

Paginar formulario con php

Estas en el tema de Paginar formulario con php en el foro de PHP en Foros del Web. Hola! Mi duda es la siguiente: Tengo un formulario en donde quisiera que al momento en el que el usuario interactue con el, este tenga ...
  #1 (permalink)  
Antiguo 31/07/2012, 11:43
Avatar de Suhkha  
Fecha de Ingreso: julio-2012
Mensajes: 65
Antigüedad: 11 años, 9 meses
Puntos: 1
Pregunta Paginar formulario con php

Hola!

Mi duda es la siguiente:

Tengo un formulario en donde quisiera que al momento en el que el usuario interactue con el, este tenga la posibilidad de usar botones como siguiente o atras.

Es decir, la primera pagina indica datos personales <siguiente> la segunda pagina indica sus gustos <atras><siguiente> la tercera pagina tiene informacion laboral <atras><siguiente>.

Me gustaria que al darle siguiente siga tomando la informacion de la pagina anterior, para que en la ultima pagina el usuario pueda dar clic en finalizar y almacenar toda a informacion de las paginas.

No se si me doy a entender, espero que si.

Esto es un ejemplo, pero si me gustaria saber como hacerle en php.

Muchas gracias!
__________________
Don't look back, and try learning everyday, no matters how...
  #2 (permalink)  
Antiguo 31/07/2012, 11:47
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Paginar formulario con php

claro que se puede hacer en php pero es mucho mas facil usar php y javascript para eso.
  #3 (permalink)  
Antiguo 31/07/2012, 11:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Paginar formulario con php

Pues puedes ir almacenando los resultados del formulario en sesiones, así sería sencillo recuperar los datos en cualquier momento.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 31/07/2012, 11:52
Avatar de Suhkha  
Fecha de Ingreso: julio-2012
Mensajes: 65
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Paginar formulario con php

Bueno, lo que pasa es que es un sistema de tickets, en donde cualquier usuario pueda ingresar informacion, segun el formulario.

De javascript no se nada de nada, por eso pregunte para php, ya que tengo un poco mas de nocion, espero me puedan dar un pequeño de ejemplo de como hacer la paginacion.

Gracias por responder.
__________________
Don't look back, and try learning everyday, no matters how...
  #5 (permalink)  
Antiguo 31/07/2012, 12:28
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Paginar formulario con php

hola, como bien dijeron con javascript es mas facil pero con php y seciones se puede, guarda en un archivo llamado "Pasos.php" esto:
Código PHP:
Ver original
  1. <?php
  2. if(isset($_GET[Prosesar])){
  3. echo<<<HTML
  4. <hr />
  5. Los datos son: Nombre: $_POST[Nombre], Apellido:$_POST[Apellido], Telefono:$_POST[Telefono]
  6. <hr />
  7. <a href="Pasos.php">Probar de nuevo?</a>
  8. HTML;
  9. } else {
  10.     if(isset($_GET[Paso])){
  11.         $_SESSION[Paso]=$_GET[Paso];
  12.     } else {
  13.         unset($_SESSION);
  14.         $_SESSION[Paso]=1;
  15.     }
  16.    
  17.    
  18.     switch ($_SESSION[Paso]){
  19.         case'1':
  20.             if(isset($_GET[Almacenar])){
  21.                 $_SESSION[Nombre]=$_POST[Nombre];
  22.             }
  23. echo <<<HTML
  24.     <div><a href="Pasos.php?Paso=2">Paso 2</a></div>
  25.     <hr />
  26.     <form action="Pasos.php?Paso=1&Almacenar=true" method="post">
  27.         Nombre:<input type="text" size="20" value="$_SESSION[Nombre]" NAME="Nombre" ID="Nombre"/>
  28.         <input type="submit" value="Registrar Estos Datos">
  29.     </form>    
  30. HTML;
  31. break;
  32. //-------------------------------->>>
  33.         case'2':
  34.             if(isset($_GET[Almacenar])){
  35.                 $_SESSION[Apellido]=$_POST[Apellido];
  36.             }
  37. echo <<<HTML
  38.     <div><a href="Pasos.php?Paso=1">Paso 1</a><a href="Pasos.php?Paso=3">Paso 3</a></div>
  39.     <hr />
  40.     <form action="Pasos.php?Paso=2&Almacenar=true" method="post">
  41.         Apellido:<input type="text" size="20" value="$_SESSION[Apellido]" NAME="Apellido" ID="Apellido"/>
  42.         <input type="submit" value="Registrar Estos Datos">
  43.     </form>    
  44. HTML;
  45.         break;
  46. //-------------------------------->>>
  47.         case'3':
  48.             if(isset($_GET[Almacenar])){
  49.                 $_SESSION[Telefono]=$_POST[Telefono];
  50.             }
  51. echo <<<HTML
  52.     <div><a href="Pasos.php?Paso=2">Paso 2</a><a href="Pasos.php?Paso=4">Paso 4</a></div>
  53.     <hr />
  54.     <form action="Pasos.php?Paso=3&Almacenar=true" method="post">
  55.         Telefono:<input type="text" size="20" value="$_SESSION[Telefono]" NAME="Telefono" ID="Telefono"/>
  56.         <input type="submit" value="Registrar Estos Datos">
  57.     </form>    
  58. HTML;
  59.         break;
  60. //-------------------------------->>>
  61.         case'4':
  62.             if(isset($_GET[Almacenar])){
  63.                 $_SESSION[Telefono]=$_POST[Telefono];
  64.             }
  65. echo <<<HTML
  66.     <div><a href="Pasos.php?Paso=2">Paso 2</a><a href="Pasos.php?Paso=4">Paso 4</a></div>
  67.     <hr />
  68.     <form action="Pasos.php?Prosesar=true" method="post">
  69.         Nombre:<input type="text" size="20" value="$_SESSION[Nombre]" NAME="Nombre" ID="Nombre"/><br />
  70.         Apellido:<input type="text" size="20" value="$_SESSION[Apellido]" NAME="Apellido" ID="Apellido"/><br />
  71.         Telefono:<input type="text" size="20" value="$_SESSION[Telefono]" NAME="Telefono" ID="Telefono"/><br />
  72.         <input type="submit" value="Registrar Estos Datos">
  73.     </form>    
  74. HTML;
  75.             break;
  76. //-------------------------------->>>
  77. }   }
  78.  
  79. ?>
ai tienes un ejemplo que puedes adaptar a tus nesesidades saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 31/07/2012, 12:30
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: Paginar formulario con php

http://www.desarrolloweb.com/articulos/1035.php
http://www.desarrolloweb.com/articulos/1248.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #7 (permalink)  
Antiguo 01/08/2012, 09:29
Avatar de Suhkha  
Fecha de Ingreso: julio-2012
Mensajes: 65
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Paginar formulario con php

Muchas gracias, hare pruebas con el codigo y les comentare como me fue! :)
__________________
Don't look back, and try learning everyday, no matters how...
  #8 (permalink)  
Antiguo 01/08/2012, 09:34
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Paginar formulario con php

Lo otro que se me ocurre que puedes hacer, en caso de que como dices, son usuarios cualquieras y por tanto "no inician sesion" creas unos inputs hidden en la sigiente pagina y les asignas el valor obtenido de los formularios anteriores. de este modo podras pasar la informacion via post por todos los formularios sin necesidad de trabajar con sesiones.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #9 (permalink)  
Antiguo 01/08/2012, 11:44
Avatar de Suhkha  
Fecha de Ingreso: julio-2012
Mensajes: 65
Antigüedad: 11 años, 9 meses
Puntos: 1
Sonrisa Respuesta: Paginar formulario con php

Cita:
Iniciado por rjulio21 Ver Mensaje
Lo otro que se me ocurre que puedes hacer, en caso de que como dices, son usuarios cualquieras y por tanto "no inician sesion" creas unos inputs hidden en la sigiente pagina y les asignas el valor obtenido de los formularios anteriores. de este modo podras pasar la informacion via post por todos los formularios sin necesidad de trabajar con sesiones.
Ah ok, y como hago eso perdon, si pudieras ponerme un ejemplo.

Gracias!
__________________
Don't look back, and try learning everyday, no matters how...
  #10 (permalink)  
Antiguo 01/08/2012, 11:54
 
Fecha de Ingreso: diciembre-2009
Mensajes: 125
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Paginar formulario con php

Cita:
Iniciado por Suhkha Ver Mensaje
Ah ok, y como hago eso perdon, si pudieras ponerme un ejemplo.

Gracias!
En la pagina 1 envías a la pagina 2, por post y en la página 2 envías a la pagina 3 por post el formulario de la página 2 + los hidden de la página 1 y así sucesivamente y en la última haces la inserción en la bd, arrastrando todo..

Espero que lo hayas entendido..
  #11 (permalink)  
Antiguo 01/08/2012, 12:07
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: Paginar formulario con php

la funcion malevola XD


http://www.forosdelweb.com/f18/envia...5/#post3862050
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 01/08/2012, 12:23
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Paginar formulario con php

Cita:
Iniciado por Suhkha Ver Mensaje
Ah ok, y como hago eso perdon, si pudieras ponerme un ejemplo.

Gracias!
Eso Asi como dice este pana. creas un campo hidden
ejemplo
Código PHP:
Ver original
  1. //pagina inicial
  2. <form name="f" action="pagina2.php">
  3. NOMBRE: <input type="text" name="nombre">
  4. <input type="submit" name="enviar" value="enviar">
  5.  
  6. //Script pagina2.php
  7. $nombre= $_POST['nombre];
  8. echo "
  9. <form action=\"pagina3.php\" name=\"f2\">
  10. <input type=\"hidden\" value=\"$nombre\" name='nombre'>
  11. .....//todo el codigo adicional....";
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #13 (permalink)  
Antiguo 01/08/2012, 19:42
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Paginar formulario con php

Cita:
En la pagina 1 envías a la pagina 2, por post y en la página 2 envías a la pagina 3 por post el formulario de la página 2 + los hidden de la página 1 y así sucesivamente y en la última haces la inserción en la bd, arrastrando todo..
y cuando quieres volver hacia atras como harias? mas campos hidden?
osea ejemplo:
Pagina 1 Datos Personales:
Nombre, Apellido, Telefono, Direccion, Usuario, Conraseña, Edad, Acepta terminos
Pagina 2 Intereses:
37 categorias posibles tipo checkbox, radio, select, etc.
Pagina 3 Productos
54 Productos seleccionables.
Pagina 4 Confirmacion de datos
Nombre, Apellido, Telefono, Direccion, Usuario, Conraseña, Edad, Acepta terminos
37 categorias
54 Productos


.........

en mi ejemplo tendrias que trabajar con 99 (si no conte mal) campos hidden eso son 99 variables que se prosesan cada vez si quieres que valla y vuelva, la forma mas practica para manejarlo es con seciones.

Cita:
la funcion malevola XD
eso esta bien interesante XD
sin embargo me antoje de combinar mi ejemplo con campos hidden y la funcion malevola con lo cual queda bastante optimizado y facil de usar XD
Código PHP:
Ver original
  1. <?php
  2. echo('<html><head><title>Trabajo con Seciones</title></head><body>');
  3. if(isset($_GET[Prosesar]) && $_POST[Pagina]=='0'){
  4. //Aca prosesas todos los datos de los foirmularios
  5. echo<<<HTML
  6. <hr />
  7. Los datos son: Nombre: $_POST[Nombre], Apellido:$_POST[Apellido], Telefono:$_POST[Telefono]
  8. <hr />
  9. <a href="Pasos.php">Probar de nuevo?</a>
  10. HTML;
  11. } else {
  12.     if(isset($_GET[Paso])){
  13.         $_SESSION[Paso]=$_POST[Pagina];
  14.     } else {
  15.         session_destroy();
  16.         session_start();
  17.         $_SESSION[Paso]=1;
  18.     }
  19.    
  20.     switch ($_GET[Paso]){
  21.         //Segun el paso guardas los datos correspondientes a ese formulario
  22.         case '1':   $_SESSION[Nombre]=$_POST[Nombre];       break;
  23.         case '2':   $_SESSION[Apellido]=$_POST[Apellido];   break;
  24.         case '3':   $_SESSION[Telefono]=$_POST[Telefono];   break;     
  25.     }
  26.  
  27.     switch ($_SESSION[Paso]){
  28.     //Muestras el formulario correspondiaente paar cada paso
  29. //-------------------------------->>>
  30.         case'1':
  31. echo <<<HTML
  32.     <input type="button" onClick="Pagina.value='2';document.Formulario.submit();" value="Paso 2" />
  33.     <hr />
  34.     <form action="Pasos.php?Paso=1&Almacenar=true" method="post" name="Formulario" id="Formulario">
  35.         Nombre:<input type="text" size="20" value="$_SESSION[Nombre]" name="Nombre" id="Nombre"/>
  36.         <input type="hidden" name="Pagina" id="Pagina">
  37.     </form>
  38. HTML;
  39. break;
  40. //-------------------------------->>>
  41.         case'2':
  42. echo <<<HTML
  43.     <input type="button" onClick="Pagina.value='1';document.Formulario.submit();" value="Paso 1" />
  44.     <input type="button" onClick="Pagina.value='3';document.Formulario.submit();" value="Paso 3" />
  45.     <hr />
  46.     <form action="Pasos.php?Paso=2&Almacenar=true" method="post" name="Formulario" id="Formulario">
  47.         Apellido:<input type="text" size="20" value="$_SESSION[Apellido]" name="Apellido" id="Apellido"/>
  48.         <input type="hidden" name="Pagina" id="Pagina">
  49.     </form>
  50. HTML;
  51.         break;
  52. //-------------------------------->>>
  53.         case'3':
  54. echo <<<HTML
  55.     <input type="button" onClick="Pagina.value='2';document.Formulario.submit();" value="Paso 2" />
  56.     <input type="button" onClick="Pagina.value='4';document.Formulario.submit();" value="Paso 4" />
  57.     <hr />
  58.     <form action="Pasos.php?Paso=3&Almacenar=true" method="post" name="Formulario" id="Formulario">
  59.         Telefono:<input type="text" size="20" value="$_SESSION[Telefono]" name="Telefono" id="Telefono"/>
  60.         <input type="hidden" name="Pagina" id="Pagina">
  61.     </form>
  62. HTML;
  63.         break;
  64. //-------------------------------->>>
  65.         case'4':
  66. echo <<<HTML
  67.     <input type="button" onClick="Pagina.value='3';document.Formulario.submit();" value="Paso 3" />
  68.     <input type="button" onClick="Pagina.value='0';document.Formulario.submit();" value="Guardar" />
  69.     <hr />
  70.     <form action="Pasos.php?Paso=4&Prosesar=true" method="post" name="Formulario" id="Formulario">
  71.         Nombre:<input type="text" size="20" value="$_SESSION[Nombre]" name="Nombre" id="Nombre"/><br />
  72.         Apellido:<input type="text" size="20" value="$_SESSION[Apellido]" name="Apellido" id="Apellido"/><br />
  73.         Telefono:<input type="text" size="20" value="$_SESSION[Telefono]" name="Telefono" id="Telefono"/><br />
  74.         <input type="hidden" name="Pagina" id="Pagina">
  75.     </form>
  76. HTML;
  77.             break;
  78. //-------------------------------->>>
  79. }   }
  80. echo('</body></html>');
  81. ?>

no es por desmerecer el esfuerzo pero podrias hojear esto:

http://www.jankoatwarpspeed.com/exam...orm_to_wizard/

sin duda es la forma mas eficientes de trabajar con pasos.
(debes hacer click en el boton rojo para ver su funcionamiento)
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Última edición por NSD; 01/08/2012 a las 19:48
  #14 (permalink)  
Antiguo 02/08/2012, 08:02
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Paginar formulario con php

Cita:
Iniciado por NSD Ver Mensaje

en mi ejemplo tendrias que trabajar con 99 (si no conte mal) campos hidden eso son 99 variables que se prosesan cada vez si quieres que valla y vuelva, la forma mas practica para manejarlo es con seciones.


eso esta bien interesante XD
sin embargo me antoje de combinar mi ejemplo con campos hidden y la funcion malevola con lo cual queda bastante optimizado y facil de usar XD
Los campos CHECK, puedes manejarle los nombres como arreglos.
<input type="checkbox" name="nombre[]">
asi. AUNQUE tengas 40 categorias, nada mas mandas una variable. (la cual facilmente puedes recorrer con un foreach..... Por lo demas. me dio pereza ver todo el codigo... si dices que te funciono. jajaja. saludos...
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #15 (permalink)  
Antiguo 02/08/2012, 08:12
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
De acuerdo Respuesta: Paginar formulario con php

Cita:
Iniciado por Suhkha Ver Mensaje
Hola!

Mi duda es la siguiente:

Tengo un formulario en donde quisiera que al momento en el que el usuario interactue con el, este tenga la posibilidad de usar botones como siguiente o atras.

Es decir, la primera pagina indica datos personales <siguiente> la segunda pagina indica sus gustos <atras><siguiente> la tercera pagina tiene informacion laboral <atras><siguiente>.

Me gustaria que al darle siguiente siga tomando la informacion de la pagina anterior, para que en la ultima pagina el usuario pueda dar clic en finalizar y almacenar toda a informacion de las paginas.

No se si me doy a entender, espero que si.

Esto es un ejemplo, pero si me gustaria saber como hacerle en php.

Muchas gracias!
Se me acaba de ocurrir que todo eso es mas facil, si deseas crearlo solo con CSS. MANEJAS una sola pagina. y con CSS te encargas del efecto de crear la paginacion del formulario, de esta manera no necesitas NI variables de sesion, NI campos ocultos. NI nada por el estilo porque todo estara en la misma pagina. lo que tienes que haces es mostrar un div y ocultar los demas. y asi consecutivamente....! SALUDOS
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #16 (permalink)  
Antiguo 02/08/2012, 08:22
Avatar de Suhkha  
Fecha de Ingreso: julio-2012
Mensajes: 65
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Paginar formulario con php

wow! muchas gracias x sus respuestas, apenas las estoy viendo y se me ha hecho interesante la manera en como las exponen, asi que manos a la obra, aplicare lo mostrado! :)
__________________
Don't look back, and try learning everyday, no matters how...
  #17 (permalink)  
Antiguo 03/08/2012, 09:56
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Paginar formulario con php

Cita:
Los campos CHECK, puedes manejarle los nombres como arreglos.
<input type="checkbox" name="nombre[]">
asi. AUNQUE tengas 40 categorias, nada mas mandas una variable. (la cual facilmente puedes recorrer con un foreach..... Por lo demas. me dio pereza ver todo el codigo... si dices que te funciono. jajaja. saludos...
en efecto, si fuesen checkbox podrias hacer eso pero tambien podrian ser otros tipos de campos y se complicaria un poco mas, igualmente funcionaria pero seria mucho mas ineficiente y ademas estarias transfiriendo constantemente muchos datos innesesariamente.
Cita:
Se me acaba de ocurrir que todo eso es mas facil, si deseas crearlo solo con CSS. MANEJAS una sola pagina. y con CSS te encargas del efecto de crear la paginacion del formulario, de esta manera no necesitas NI variables de sesion, NI campos ocultos. NI nada por el estilo porque todo estara en la misma pagina. lo que tienes que haces es mostrar un div y ocultar los demas. y asi consecutivamente....! SALUDOS
sin duda esa es la mejor forma. pero ya nesesitara un poco de javascript (o quiza con un css muy avanzado se pueda llegar a hacer nunca lo intente) y suhkha dise que no sabe javascript, igual junto con mi ejemplo casero deje un link a un formulario de ese tipo.
en fin, todas las opciones son validas, con mas o menos trabajo todas andan, veremos por cual se inclina Suhkha que es la que lo nesesita. saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:30.