Ir al contenido


Foto

Formulario dividido en partes


  • Por favor identifícate para responder
5 respuestas en este tema

#1 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 23 septiembre 2013 - 10:05

Hola a todos!
Una vez más dando lata. Estoy haciendo un formulario con muchos campos, por lo que decidí dividirlo en partes.
En la primera se pide:
correo, nombre de usuario, contraseña y repetir la contraseña.
1. Verifica los campos con javascript (todos llenos, correo valido y coincidencia entre las contraseñas tecleadas)
2. Verifica que el correo no esté registrado, que el nombre de usuario no exista, encripta pss en javascript
3. Si no existen el correo y nombre de usuario, inserta los datos en mi tabla.
4. inmediatamente después hago una consulta: "SELECT @@identity AS uid" para obtener el id del registro recien insertado
5. Alert (javascript) y window location que manda a la segunda parte del formulario con el "uid" obtenido de la consulta anterior. Es decir: window.location='registro.php?uid=$uid

Hasta aquí todo perfecto (lo inserta y me llega así: registro.php?uid=7)
El problema es que una vez en la página registro.php, no puedo recuperar el valor de uid. Ya lo intenté con get y con request pero no se puede ($uid=$_GET["uid"];  y  $uid=$_REQUEST["uid"];)

con print_r($_GET) me aparece vacío (uid=) aún cuando estoy viendo el id correspondiente en la url (registro.php?uid=7).
Los valores enviados por $_POST (valores en el formulario) llegan perfecto (revisado con print_r)
La idea es en las siguientes "partes" del formulario (sí son al menos 3), hacer update para agregar en la misma tabla los datos de cada formulario. por eso requiero en id del registro creado en la primera parte del formulario

Seguramente es una estupidez, pero me estoy desquiciando porque ya intenté todo y soy nueva en este tema, así es que mientras más simple sea la solución, más probable es que lo entienda y más lo agradeceré ;)

Abrí el tema como "Formulario en varias partes" porque seguramente surgirán mas dudas y no encontré una consulta similar en el foro. Tal vez otros usuarios necesiten hacer formularios en partes

GRACIAS de antemano!
HELPPPP
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 23 septiembre 2013 - 11:02

Si estás enviando a otro formulario por que no en lugar de hacerlo con windows.location  pruebas con header de php. de esa manera garantizas el get.


  • 0

#3 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 23 septiembre 2013 - 11:38

Gracias poliburro ya lo intenté pero sigo sin poder recuperarlo. Con el window location y con el header lo manda (lo veo en la url y lo imprime con print_r  al cargar la página registro.php) pero al momento de enviar la segunda parte del formulario (en registro.php) me llega en blanco.
Creo que el problema es a la hora de recuperarlo. Intento guardarlo en una variable. Al principio del archivo registro.php: $uid=$_GET["uid"];
Ya intenté incluso, mandar $uid como parámetro en mi función registro($uid) y a la hora de imprimir mi consulta, me llega vacío.

  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 23 septiembre 2013 - 12:21

creo que ya entendí....

Para pasar datos entre diferentes formularios debes incluir los valores en el bloque del formulario que enviarás.  puedes incluir después del formulario el valor de la forma

<input type="hiddend" value=$uid name=uid id=uide>

de esa forma al realzar el get o post del segundo formulario este enviará los datos que deseas.
  • 0

#5 Pili

Pili

    Member

  • Miembros
  • PipPip
  • 44 mensajes
  • LocationCiudad de México

Escrito 23 septiembre 2013 - 01:27

creo que ya entendí....

Para pasar datos entre diferentes formularios debes incluir los valores en el bloque del formulario que enviarás.  puedes incluir después del formulario el valor de la forma

<input type="hiddend" value=$uid name=uid id=uide>

de esa forma al realzar el get o post del segundo formulario este enviará los datos que deseas.


Gracias poliburro... una vez más eres mi hit!!

Del formulario #1 (registro0.php)  al 2° no lo pude hacer así pues al enviarlo crea el registro y después recupero el id del registro creado con "SELECT @@identity AS uid"; hay otra forma más simple (o efectiva) de hacerlo?
Al enviar el segundo formulario (registro.php) incluí el campo oculto que me sugeriste:
<input type="hidden" name="uid" value="<?php echo $uid ?>" id="uid"/> y ahora sí lo recibió y actualizó mi tabla con los campos del formulario!
MIL GRACIAS!
Te pido dejar abierto el tema porque como verás parece que me gusta complicarme la existencia con esto del formulario en partes y todavía no lo acabo!

  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 23 septiembre 2013 - 03:00

Es un gusto ayudar.

Yo soy de la idea de que cada duda se separe en un hilo distinto para qeu otros puedan ser beneficiados con la solución que se encuentre a cada problema específico. Pero si es el mismo problema en distintos bloques no creo que haya inconveniente.




  • 0




IP.Board spam blocked by CleanTalk.