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

[SOLUCIONADO] Recuperar los datos del formulario cuando a sido enviado

Estas en el tema de Recuperar los datos del formulario cuando a sido enviado en el foro de Symfony en Foros del Web. Hola, Estoy intentando hace muchas horas hacer algo muy simple, bueno les cuento haber si me pueden ayudar (Tengo Symfony 2.2 y FOSUserBundle) Tengo un ...
  #1 (permalink)  
Antiguo 17/03/2013, 18:54
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 11 meses
Puntos: 23
Pregunta Recuperar los datos del formulario cuando a sido enviado

Hola,

Estoy intentando hace muchas horas hacer algo muy simple, bueno les cuento haber si me pueden ayudar (Tengo Symfony 2.2 y FOSUserBundle)

Tengo un formulario de registro de candidatos el cual al darle submit va a otra pagina llamada "grabar":

Código HTML:
Ver original
  1. <form id="form_regCandidato" action="{{ path('an_candidato_grabar') }}" method="post" {{ form_enctype(form) }}>
  2.  
  3.    {{ form_errors(form) }}
  4.  
  5.    {{ form_widget(form)}}
  6.  
  7.    {{ form_rest(form) }}               
  8.        
  9.    <input type="submit" />
  10. </form>

Esta pagina lo unico que hace es como todas las de los manuales, es desplegar los datos y una vez llenados los datos, los envia a dicha pagina, hasta aqui todo correcto.

En el controller tengo

Código HTML:
Ver original
  1. public function grabarAction(Request $request)
  2.     {
  3.         $candidato = new Candidato();
  4.         $form = $this->createForm(new RegistrationFormType(), $candidato); 
  5.  
  6.         if ($request->isMethod('POST'))
  7.         {
  8.              $form->bind($request);
  9.  
  10.              if($form->isValid())
  11.             {
  12.                         //demas codigo
  13.             }
  14.         }
  15.  
  16.         return $this->render('FOSUserBundle:Registration:register.html.twig', array(
  17.             'form' => $form->createView(),
  18.         ));
  19.     }


Bueno, en mi formulario envio un dato invalido para que me despliegue el mensaje de error respectivo, esto lo hace sin problemas... el problema es que me borra todos los otros datos :D

Mi consulta finalmente es... como puedo devolverle a la plantilla los datos que ya habian ingresado en primera instancia? es decir, si ingrese el email y el nombre, que en caso de que por ejemplo el email no sea valido, al volver a mostrarme el formulario tenga estos dos valores que ya ingrese, no se si me explico.

Agradezco desde ya su ayudo, llevo horas y horas navegando por internet y viendo manuales intentando hacer algo muy simple, pero ya es un dolor de cabeza gigantesco >,<
  #2 (permalink)  
Antiguo 18/03/2013, 17:30
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 11 meses
Puntos: 23
Respuesta: Recuperar los datos del formulario cuando a sido enviado

Bueno, me respondo solo :D (forever alone)

Reemplazando el archivo "RegistrationController.php", me di cuenta que efectivamente cuando tenia un error si se cargaban los datos, por lo tanto ocupando la misma logica en mi archivo "grabar", simplemente puse lo siguiente:

Código HTML:
Ver original
  1. $candidato = new Candidato();
  2.         $form = $this->createForm(new RegistrationFormType(), $candidato); 
  3.  
  4.         //Copiado del otro controller
  5.         $form = $this->get('fos_user.registration.form');
  6.         $formHandler = $this->get('fos_user.registration.form.handler');
  7.         $process = $formHandler->process(false);
  8.  
  9. //Resto de codigo

Los 3 ultimos, lo que hacen (segun yo) es simplemente cargar los datos en el formulario, obviamente en mi caso puse "process(false)", porque no requiero validar con este elemento si el formulario fue enviado o no, si no que ocupare otra cosa para validar, es simplemente que necesita ejecutar esa funcion para que se "almacenen" los datos en el formulario temporalmente, es decir, para que se muestren finalmente.


EDITO:

Corrijo, ocupando

Código HTML:
Ver original
  1. use Symfony\Component\HttpFoundation\Request;
  2.  
  3. public function grabarAction(Request $request)
  4. {
  5.  
  6.     if ('POST' === $request->getMethod())
  7.    {
  8.        $form->bind($request);
  9.        //resto codigo
  10.   }
  11. }

Se obtienen y se setean todos los valores del formulario enviado

Última edición por fhederico; 19/03/2013 a las 15:13

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