Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Cakephp registro de usuarios en 3 pasos en cakephp con ajax

Estas en el tema de registro de usuarios en 3 pasos en cakephp con ajax en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola chicos! He estado buscando información sobre ajax y como funciona en cakephp y la verdad que estoy un poco verde en el tema. Tengo ...
  #1 (permalink)  
Antiguo 23/11/2010, 09:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 13 años, 6 meses
Puntos: 0
Exclamación registro de usuarios en 3 pasos en cakephp con ajax

Hola chicos!

He estado buscando información sobre ajax y como funciona en cakephp y la verdad que estoy un poco verde en el tema.
Tengo el siguiente problema. Tengo un registro de usiarios implementado en mi web con cakephp, donde mando un formulario con todos los datos del usuario a la accion "singup" de mi user_controller donde me guarda toda la informacion en una vez, pero creo que es un coñazo para los usuarios tener que escribir tantos datos en una sola vez, así que he pensado reformar el view y hacerlo por unos sencillos 3 pasos, que serian:
1º guardar datos de seguridad como nombre, email y contraseña. Un boton de continuar e ir al paso 2
2º subir un documento id. btn continuar->paso 3
3º demas datos, como, dirección, ciudad, universidad, etc. btn enviar -> enviar todo a mi controller.

Hasta aqui lo entiendo, pero en la practica me pierdo.
mis preguntas:
¿tendria que hacer un formulario de todo y enviarlo con ajax o un formulario en cada paso?
¿Como mostraria en cada momento el paso en el que me encuentro?

Ya tengo instaladas las librerías JavaScript script.aculo.us y Prototype actuales de los helpers esperando a que empieze a programarlo.

en mi view tengo :
Código PHP:
<h1>crear cuenta</h1>
<br />

<?php echo $form->create('User', array('action' => 'signup/'.$invite_code'type' => 'file')); ?>

        //nombre, email y pasword
    <?php echo $this->element('users/signup/stepone'); ?>
    
        //subir documento "carnet de estudiante"
    <?php echo $this->element('users/signup/steptwo'); ?>
    
        // ciudad, direccion, universidad, etc
    <?php echo $this->element('users/signup/stepthree'); ?>
    

<?php echo $form->end(); ?>

<br />
<br class="clb" />
Siento ser tan inepto en este tema, os pido disculpas por la complejidad de mi pregunta, solo pido alguna pista para saber encauzarme...

Muchas gracias de antemano
Saludos
  #2 (permalink)  
Antiguo 23/11/2010, 10:31
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: registro de usuarios en 3 pasos en cakephp con ajax

Lo que queres hacer es un multi page form. podes googlear y vas a encontrar info, de cake no se nada pero te dejo un link que capaz te sirve mpf.

Salu2.
  #3 (permalink)  
Antiguo 24/11/2010, 07:18
 
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: registro de usuarios en 3 pasos en cakephp con ajax

Muchas gracias por tu respuesta... lo he estado mirando y es perfecto para lo que quiero hacer, lo voy a probar a ver como queda, gracias de nuevo.

También estube pensando otras formas de hacerlo y una muy sencilla que no habia caido es la de mostrar y ocultar divs con javascript, desglosé los diferentes pasos en diferentes divs y con una pequeña función javascript muestro el que me interesa en cada momento y así no tengo que cambiar mi controller, al final en el ultimo paso (div) lo mando todo como hasta ahora lo tenía hecho en mi controller.

Lo malo de esta solución son los mensages de error que me los muestra en los divs ocultos...

por si a alguien le interesa:
Código PHP:
<?php echo $form->create('User', array('action' => 'signup/'.$invite_code'type' => 'file')); ?>

<div id="stepone" style="display: block;">
    <?php echo $this->element('users/signup/stepone'); ?>
</div>    

<div id="steptwo" style="display: none;">
    <?php echo $this->element('users/signup/steptwo'); ?>
</div>    

<div id="stepthree" style="display: none;">
    <?php echo $this->element('users/signup/stepthree'); ?>
</div>

<div id="stepfour" style="display: none;">
    <?php echo $this->element('users/signup/agb'); ?>
</div>


<?php echo $form->end(); ?>


<script type="text/javascript">
function show_hidde(id){

    document.getElementById("stepone").style.display = 'none';
    document.getElementById("steptwo").style.display = 'none';
    document.getElementById("stepthree").style.display = 'none';
    document.getElementById("stepfour").style.display = 'none';

    var el = document.getElementById(id);
    el.style.display = 'block';
}

window.onload = function(){
    show_hidde('stepone');
}
dentro de cada elemento un boton con un onclick que oculta o muestra los div que necesitas.


De todas formas voy a implementar el "Wizard Component" a ver como queda que tiene muy buena pinta.

Saludos
  #4 (permalink)  
Antiguo 25/11/2010, 09:15
 
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: registro de usuarios en 3 pasos en cakephp con ajax

Al final he implementado el formulario multi pagina (gracias masterpuppet) aunque no ha sido nada facil, al final he conseguido domarlo he tenido muchos problemas a la hora de poder subir una imagen cuando me registro en el 2º paso, pero dando algunos rodeos, lo he conseguido

Saludos

Etiquetas: ajax, cakephp, 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 10:49.