Foros del Web » Programando para Internet » PHP » CodeIgniter »

cómo hacer formulario pagina con codeIgniter

Estas en el tema de cómo hacer formulario pagina con codeIgniter en el foro de CodeIgniter en Foros del Web. Hola amigos, Necesito que me ayuden con esto, pues necesito generar algo como una encuesta, el número de preguntas no se sabe, por lo cual ...
  #1 (permalink)  
Antiguo 01/03/2012, 08:07
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
cómo hacer formulario pagina con codeIgniter

Hola amigos,

Necesito que me ayuden con esto, pues necesito generar algo como una encuesta, el número de preguntas no se sabe, por lo cual tengo que generar un arreglo dinámico de text en base a la cantidad de preguntas (puede variar) que conforman una encuesta.

Voy a necesitar hacer una paginación (esto ya cómo hacerlo) de las preguntas de la encuesta.

Lo que no se cómo hacer es que se guarde la información por cada página que voy pasando. Les pongo un ejemplo.

Suponiendo que tengo una encuesta de 5 páginas (10 preguntas en cada página). Lleno la página 1, luego la 2, pero estando en la 3 me decido regresar a la página 1 pero sólo a modificar la pregunta 3, el resto debe contener las respuestas que digité la primera vez que visité la página 1.

¿Cómo hago para hacer que la información que voy digitando se mantenga en los controles de todas las páginas por si decido regresar?.

¿Y para que se vayan guardando de un sólo en base de datos?, imagínense que estoy en la página 4 y hay un corte de energía, la idea es que no pierdan las respuestas que he llenado en las páginas 1, 2 y 3 para no volverlas a llenar.

Me pueden ayudar con esto por favor.

No publico código pues como les menciono al principio aún no tengo ideo de cómo plantearlo en base a lo que les expliqué.

Saludos y desde ya agradeciéndoles su colaboración
  #2 (permalink)  
Antiguo 01/03/2012, 09:06
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: cómo hacer formulario pagina con codeIgniter

hay variadas formas de hacerlo, pero creo que las más viable es usar capas ocultas con CSS, donde divides el contenido del form en varias <div> y con javascript vas ocultando y mostrando la siguiente, de ésa forma envías un submit completo.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 01/03/2012, 16:54
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Respuesta: cómo hacer formulario pagina con codeIgniter

Hola maycolalvarez,

Gracias por el aporte, en su momento pensé en lo que propones, debido a que como lo apuntabas es la solución mas viable, pero se me ocurrió que pude tener una pequeña desventaja que apuntaba en el mensaje inicial:

Lo positivo es que todo se hace en un solo submit, lo malo es que tal si son 5 páginas, estas a la mitad de la página 5 y te quedas sin conexión por algún motivo, debido a algún corte de energía por decir algo. En este caso habrás perdido todo y tendrías que volver a iniciar desde la página 1.

Por ahí podrían aparecer las sesiones, pero creo que no sería muy buena opción ya que entre mas preguntas tengo, mas sesiones y mas cargar al server.

Y si hago inserciones y actualizaciones? aunque creo que siempre habría cargar para el servidor por tanta conexión a la DB.

Ideas?
  #4 (permalink)  
Antiguo 02/03/2012, 01:55
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: cómo hacer formulario pagina con codeIgniter

Tienes la opción de colocar input type hidden con el valor de los input insertados en el paso anterior. Después tienes las sesiones. En principio con la solución número 1 lo puedes arreglar sin problemas. Tendrías que hacer un input hidden con el name del campo original y con el value = $_POST['campo'], de esa manera se van acumulando,

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #5 (permalink)  
Antiguo 02/03/2012, 07:33
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Respuesta: cómo hacer formulario pagina con codeIgniter

Hola miktrv,

Me llama la atención tu propuesta, si la he comprendido es hacer algo como lo siguiente:

Página 1:
Código HTML:
Ver original
  1. <input type="text" id="nombre"  name="nombre" />

Página 2:
Código HTML:
Ver original
  1. <input type="hidden" id="nombre_oculto"  name="nombre" value="<?PHP echo $_POST['nombre']; ?>" />

Y en la última página hacer el submit que agregue los registros a la DB? o sugieres que lo haga cada vez que cambie de página? tomando en cuenta que la navegación entre páginas puese ser hacia adelanta y hacia atrá.

Saludos
  #6 (permalink)  
Antiguo 02/03/2012, 07:44
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 5 meses
Puntos: 165
Respuesta: cómo hacer formulario pagina con codeIgniter

Hola buenas,

Si la navegación es hacia atrás, te recomiendo que uses sesiones, es lo mejor.

La opción que te planteo es buena si solo es hacía delante.

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #7 (permalink)  
Antiguo 02/03/2012, 09:32
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años, 1 mes
Puntos: 890
Respuesta: cómo hacer formulario pagina con codeIgniter

Usa sesiones junto con la funcion set_value() del helper form

Si son muchos datos, podes crear la tabla para guardar los datos de tu session.
__________________
Drupal Argentina
  #8 (permalink)  
Antiguo 02/03/2012, 11:41
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 18 años
Puntos: 3
Respuesta: cómo hacer formulario pagina con codeIgniter

A todos les agradezco los aportes, los voy a terner en cuenta a la hora de plantear mi solución en código.

Gracias por sus aportes

Etiquetas: formulario
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 09:26.