Foros del Web » Programando para Internet » PHP »

Formulario de registro por pasos

Estas en el tema de Formulario de registro por pasos en el foro de PHP en Foros del Web. Estoy en un lio con un formulario por pasos de registro... Tengo el formulario dividido en 4 partes... 1-Cuenta de acceso y datos personales 2-Localizacion ...
  #1 (permalink)  
Antiguo 15/05/2011, 13:57
 
Fecha de Ingreso: enero-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 0
Formulario de registro por pasos

Estoy en un lio con un formulario por pasos de registro...
Tengo el formulario dividido en 4 partes...
1-Cuenta de acceso y datos personales
2-Localizacion
3-Datos de envio
4-Captcha terminos

Estas son las secciones de mi formulario o pasos.

Pero la cosa es ke todo lo tengo en una sola pagina, por ejemplo para pasar a los siguientes pasos use el switch... un ejemplo del codigo:

<body>
<form action="registro_usuario2.php" method="POST" name="reg_usr" id="reg_usr">
<div id="cabecera">
<div id="contenido_cebecera">
<div id="logo"></div>
<div id="base_sesion">
<?
include("inicio_sesion.php");
//
?>
</div>
</div>
</div>

<div id="contenido">

<div id="base_formulario">
<div id="titulos">Crear cuenta</div>
<div class="objetivo">Los campos con <b style="color:#F60;">*</b> son obligatorios.</div>
<div class="btn_back" onClick="atras()">< Regresar</div>

<div id="pasos" style="background-image:url(imagenes/<?=$ImgPasos; ?>); background-repeat:no-repeat;"></div>


<div id="base_pasos">
<?
switch($pasos_reg){
case 'paso1':
?>
<div class="base_seccion">
<div class="titulo_seccion">Cuenta de acceso</div>
<div class="lbl_campos">Correo <b style="color:#F60;">*</b></div>
<input name="txtemail" id="txtemail" type="text" value="<?=$txtemail ?>">
<div class="lbl_campos">Contraseña <b style="color:#F60;">*</b></div>
<input name="txt_contrasena" id="txt_contrasena" type="password" maxlength="10" value="<?=$txtcontrasena; ?>">
<div class="lbl_campos">Confirmar contraseña <b style="color:#F60;">*</b></div>
<input name="txtconf_contrasena" id="txtconf_contrasena" type="password" maxlength="10" value="<?=$txtconfcontrasena; ?>">

<div class="titulo_seccion" style="margin-top:25px;">Datos personales</div>
<div class="lbl_campos">Nombre(s) <b style="color:#F60;">*</b></div>
<input name="txtnombre" id="txtnombre" type="text" value="<?=$txtnombre ?>" onChange="cambialetras()">
<div class="lbl_campos">Apellido(s) <b style="color:#F60;">*</b></div>
<input name="txtapellido" id="txtapellido" type="text" value="<?=$txtapellido ?>" onChange="cambialetras()">
<div class="lbl_campos">Télefono móvil <b style="color:#F60;">*</b></div>
<input name="txttel_movil" id="txttel_movil" type="text" value="<?=$txttel_movil ?>" maxlength="20"
onKeyPress="return soloNumeros(event);">

<div class="btn_continuar" onclick="continuar('paso2')">Continuar</div>
</div>
<?
break;
case 'paso2':
?>
<div class="base_seccion">
<div class="titulo_seccion">¿Dónde te encuentras?</div>
<div class="lbl_campos" style="margin-top:20px;">Estado <b style="color:#F60;">*</b></div>
<select name="estados" id="estados" onChange='cargaContenido(this.id)'>
<option>Selecciona tu estado</option>
<?
$consulta_estados = mysql_query("SELECT codigo, estado FROM tblestados ORDER BY estado ASC");
while($registro_estados=mysql_fetch_row($consulta_ estados))
{
?>
<option value="<?=$registro_estados[0]; ?>"><?=$registro_estados[1]; ?></option>
<? } ?>
</select>
<div class="lbl_campos" style="margin-top:30px;">Municipio / Delegación <b style="color:#F60;">*</b></div>
<div style="float:left;">
<select name="ciudad" id="ciudad" disabled="disabled">
<option>Selecciona tu ciudad</option>
</select>
</div>
<div class="volver"><a style="cursor:pointer" onclick="volver('paso1')">< volver</a></div>
<div class="btn_continuar" onclick="continuar('paso3')">Continuar</div>
</div>
<?
break;
case 'paso3':
?>
<div class="base_seccion">
<div class="titulo_seccion" style="margin-top:25px;">Datos de envio</div>
<div class="lbl_campos">Colonia <b style="color:#F60;">*</b></div>
<select name="s_colonia" id="s_colonia" onChange="poner_cp()">
<option><?=$s_colonia; ?></option>
<?
$Query = "SELECT * FROM tblcp_colonias ORDER BY d_asenta ASC";
$Res = mysql_query($Query);
while($row = mysql_fetch_array($Res))
{
?>
<option value="<?=$row['d_codigo']."#".htmlentities($row['d_asenta'], ENT_COMPAT, 'iso-8859-1');?>">
<?=htmlentities($row['d_asenta'], ENT_COMPAT, 'iso-8859-1');
$cp = $row['d_codigo'];

?>
</option>
<?
}
?>
</select>
<input name="guarda_col" id="guarda_col" type="hidden" value="<?=$guarda_col; ?>">
<div class="lbl_campos">CP <b style="color:#F60;">*</b></div>
<input name="txtcodigo_postal" id="txtcodigo_postal" type="text" value="<?=$txtcodigo_postal; ?>" maxlength="8"
onKeyPress="return soloNumeros(event);">
<div class="lbl_campos">Calle y número <b style="color:#F60;">*</b></div>
<input name="txtcalle_num" id="txtcalle_num" type="text" value="<?=$txtcalle_num ?>" onChange="cambialetras()">
<div class="lbl_campos">Télefono</b></div>
<input name="txttelefono" id="txttelefono" type="text" value="<?=$txttelefono ?>" maxlength="15"
onKeyPress="return soloNumeros(event);">

<div class="volver"><a style="cursor:pointer" onclick="volver('paso2')">< volver</a></div>
<div class="btn_continuar" onclick="continuar('paso4')">Continuar</div>
</div>
<?
break;
case 'paso4':
?>
<div class="base_seccion">
<div class="base_captcha">
<div class="text_image">Escribe el texto que esta en la imagen.</div>
<div style="float:left; margin-top:15px; margin-left:100px;">
<img src="captcha.php" width="100" height="30">
</div>
<input name="txtcaptcha" id="txtcaptcha" type="text">
</div>

<div class="terminos">Si hace clic en <b>Crear mi cuenta</b> es porque está de acuerdo con los
<a style="cursor:pointer;">terminos y condiciones</a> de esta web.
</div>

<div class="volver"><a style="cursor:pointer" onclick="volver('paso3')">< volver</a></div>
<div class="btn_crear">Crear mi cuenta</div>
</div>
<? } ?>
</div>


</div>
<div class="separador_pie"></div>
<div id="pie">
© 2011 Ordenandocomida.com
</div>
</div>



El problema que cuando doy continuar en cada paso... la informacion del paso 1 al 2 pasa bien... pero ya ke doy del paso 2 al 3... la informacion de la 1 se me pierde... entiendo ke si lo hago separado en archivos independientes se puede.... pero habara una forma de como lo tengo... que este en una sola pagina todo y navegue en los pasos por medio del switch mostrandome el contenido del case... osea los div de cada paso.... ESPERO Y ME HALLA EXPLIKADO... DE VERDAD AGRADECERIA MUCHO SU AYUDA...
  #2 (permalink)  
Antiguo 15/05/2011, 15:23
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 4 meses
Puntos: 26
Respuesta: Formulario de registro por pasos

has que la persona en el primer paso registre sus datos de identificacion, como correo y contraseña, con eso se crea una cuenta con la que despues puede entrar. Una vez logueado a sus cuenta que haya un apartado (menu) con las opciones de los formularios (paso2, paso3, paso4) donde el pueda llenar independiente uno de otro.

yo lo hacia con sesiones, pasar de un formulario a otro, pero de esta manera cumplo el objetivo y con mayor eficiencia.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #3 (permalink)  
Antiguo 15/05/2011, 15:26
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Formulario de registro por pasos

Tendrías que usar variables de sesion para poder guardar los datos durante cierto tiempo o ir guardando los datos en la base de datos, a tu criterio.
  #4 (permalink)  
Antiguo 15/05/2011, 15:27
 
Fecha de Ingreso: enero-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Formulario de registro por pasos

Pordrias darme una pagina de ejemplo...
o crees ke si lo haga con sesiones pueda haber una desventaja...?
  #5 (permalink)  
Antiguo 15/05/2011, 15:56
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Formulario de registro por pasos

Hola alf2303.

He estado mirando tu código y hay cosas que no entiendo.
¿De donde coges la variable $pasos_reg del switch? Supongo que estará en el archivo inicio_sesion.php que incluyes con include. Pero si luego no envías el formulario, ¿como quieres pasar de un paso al siguiente. El switch-case no te vale para nada. (No sé si estoy diciendo una burrada)

Por lo que veo en tu código, lo que haces es pasar de una parte a otra usando javascript, con lo que en principio lo de las sesiones no lo necesitas.

Es decir, según va rellenando el usuario la parte 1 le da a continuar y se muestra la parte 2, y así sucesivamente, ¿es esto lo que hace, no?

Usando javascript no deberían borrarse los datos de las partes anteriores porque no se refresca la página, así que es muy raro lo que te pasa. Parece que se refresca la página de alguna forma pero no se como. Yo de javascript no tengo mucha idea, además no has puesto las funciones que muestras las siguientes partes.

Luego, es muy raro como haces para que se pase de una parte a otra, teniendo que pulsar en un div. ¿No es más gráfico e intuitivo poner un botón?.
Además, no tienes un botón para enviar el formulario al final. No sé si es que te ha faltado poner código.

En fin, lamento no poder ayudarte. Yo creo que tienes algo mal en el código pero no se que es. No se si es un problema de javascript, o esa forma tan rara de pasar de un sitio a otro pulsando en los div, no se. A ver si alguien más entendido te puede ayudar.

Etiquetas: pasos, registro, 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 02:05.