Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

194
Vistas
El formulario Symfony AJAX devuelve un objeto vacío

Estoy tratando de crear un formulario AJAX con Symfony, pero mi formulario devuelve un objeto vacío. Cuando envío texto escrito manualmente o una matriz, todo funciona bien. ¿Dónde está el bicho? ¿Hago algo mal con el formulario o el código javascript es el problema?

 /** * Renders the "new" form * * @Route("/", name="demo_new") * @Method("GET") */ public function newAction(Request $request) { $entity = new Demo(); $form = $this->createForm(DemoType::class, $entity); return $this->render('default/new.html.twig', array( 'entity' => $entity, 'form' => $form->createView() ) ); } /** * * @Route("/", name="demo_create") * @Method("POST") * */ public function createAction(Request $request) { if (!$request->isXmlHttpRequest()) { return new JsonResponse(array('message' => 'You can access this only using Ajax!'), 400); } $entity = new Demo(); $form = $this->createForm(DemoType::class, $entity, array( 'action' => $this->generateUrl('demo_create'), 'method' => 'POST', )); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); return new JsonResponse( [ 'message' => 'Success!', 'data' => $data ], 200); } $response = new JsonResponse( array( 'message' => 'Error', 'form' => $this->renderView('default/new.html.twig', array( 'entity' => $entity, 'form' => $form->createView(), ))), 400); return $response; } }

y código Javascript:

 function initAjaxForm() { $('body').on('submit', '.ajaxForm', function (e) { e.preventDefault(); $.ajax({ type: $(this).attr('method'), url: $(this).attr('action'), data: $(this).serialize() }) .done(function (data) { if (typeof data.message !== 'undefined') { console.log(data.data); console.log(data.message); } }) .fail(function (jqXHR, textStatus, errorThrown) { if (typeof jqXHR.responseJSON !== 'undefined') { if (jqXHR.responseJSON.hasOwnProperty('form')) { $('#form_body').html(jqXHR.responseJSON.form); } $('.form_error').html(jqXHR.responseJSON.message); } else { alert(errorThrown); } }); }); }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tuve el mismo problema hoy con la versión 2.8. Dejaré esto aquí en caso de que termine curando a alguien más. He agregado esto a mi creador de formularios.

 /** * {@inheritdoc} */ public function getBlockPrefix() { return ''; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda