-2
votes

Symfony, soumettez le formulaire HTML au contrôleur à l'aide d'Ajax

im essayant d'envoyer des données d'un formulaire HMTL à un contrôleur à l'aide d'AJAX, mais le contrôleur ne reçoit pas les données comme étant l'erreur indique.

Formulaire HTML: P>

public function addEventAction() {

    $em = $this->getDoctrine()->getManager();
    //fetch the POST Data

    $request = $this->get('request_stack')->getCurrentRequest();
    $data = $request->request->all();


    $evento = new Evento();


    $evento->setBeginat(new \DateTime($data["evento_inicio"]));
    $evento->setEndat(new \DateTime($data["evento_fin"]));
    $evento->setTitle($data["evento_titulo"]);
    $evento->setMail($data["evento_mail"]);
    $evento->setDescription($data["evento_descripcion"]);
    $evento->setColor($data["color"]);

    $em->persist($evento);
    $em->flush();

    //return response
    $serializedEntity = $this->container->get('serializer')->serialize($evento, 'json');
    $response = new Response($serializedEntity);
    $response->headers->set('Content-Type', 'application/json');
    return $response;

}}


0 commentaires

3 Réponses :


0
votes

Votre propriété Ajax URL n'est pas la bonne, vous devriez simplement appeler l'URL (Route) associée à l'action Controller AddiventAction ().

Disons que votre itinéraire à Addeventaction est "/ Event / Ajouter", puis mettez URL: "/ Event / Ajouter" ou même si vous avez un nom pour cet itinéraire, puis mettez URL : "{{chemin (" nom_of_your_route ')}} "

La propriété URL d'une demande AJAX doit être l'adresse valide où vous envoyez la demande: -)


0 commentaires

0
votes

Votre demande AJAX est envoyée dans Application / JSON Type de contenu mais votre contrôleur s'attend à Application / X-www-Form-Urlencodé .

Essayez json_decode () ing $ requérir-> getContent () pour obtenir votre $ data .


0 commentaires

0
votes

Jetez un coup d'œil à ce paquet pour gérer l'URL de Symfony à partir de JavaScript: https://github.com/friendsofsymfony/ FosjsroutingBundle . Et gardez à l'esprit que JavaScript sera exécuté avant la branche. Je suis sûr que l'erreur que vous affichez est affichée sur la charge de la page. Bonne chance


0 commentaires