Partage
  • Partager sur Facebook
  • Partager sur Twitter

vérification et envoie de formulaire avec jquery

vérification et envoie de formulaire avec javascript(ajax) et symfony

    24 juillet 2017 à 2:01:04

    Bonjour,

    S'il vous plaît, comment avec ces codes je puisse faire marcher mon javascript ( affcihage des erreurs de formualaire et envoie en bdd en ajax) avec symfony (FOSJsRoutingBundle) ? Bien sûr sans oublier mon Entity et aussi le FormType que j'ai déjà.

    IndexAction 

    <?php
     
    namespace fullz\fullzBundle\Controller;
     
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
     
    use fullz\fullzBundle\Entity\Users;
    use fullz\fullzBundle\Form\UsersType;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
     
    class FullzController extends Controller
    {
     
        public function indexAction(Request $request)
        {
            // On crée un client
            $user = new Users();
     
            // On recupère le formulaire
            $form = $this->createForm(UsersType::class, $user);
     
            // Avant de générer le formulaire, on relie l'objet du formulaire à la requete qui va être envoyer
            $form->handleRequest($request);
     
            // Si le formulaire a été soumis
            if ($form->isSubmitted() && $form->isValid()){
     
                    // On enregistre le client en bdd, mais avant on récupère l'entity manager
                    $em = $this->getDoctrine()->getManager();
     
                    // On demande à l'objet manager de persister l'objet user : $user
                    $em->persist($user);
                    $em->flush();
     
                    // Le controller est obligé de retourner une reponse ( à revoir )
                    return  new Response('client test !');
            }
     
            // On génère le HTML du formulaire créer
            return $this->render('fullzBundle:Fullz:index.html.twig',array('form' => $form->createView()));
        }
    }

    Code js :

    /* global Routing */
     
    app = {
         /*
        * Fonction appelée au chargement du DOM
        */
        init: function() {
            console.info("app.init")
     
            // J'écoute le clic sur le bouton d'envoi...
            $(".envoi").on("click", this.monSubmit)
     
        },
     
        /*
        * Handler du submit
        */
     
        monSubmit: function(e){
            console.info("app.monSubmit")
     
            // On arrête le chargment de la page
            e.preventDefault()
     
     
            // Appel de la fonction pour la vérif...
            app.stopChamp()
     
        },
     
         stopChamp: function(){
             console.info("app.stopChamp")
     
            if($(".envoi")){ 
     
              var error = [];
              if($(".identif").val()==""){
                // On sélectionne le span qui à la class : error-message avec ".next"
                error["identif"] = $(".identif").next(".error-message").fadeIn(1000).text("Veuillez  bien renseigner le champ !")
              }else{
                if(!$(".identif").val().match(/^[a-z]+$/i)){
                  error["identif"] = $(".identif").next(".error-message").fadeIn(1000).text("Nom du url pas valide !")
                }else
                  $(".identif").next(".error-message").fadeOut()
              }
     
     
              if($(".mail").val() == ""){
                error["mail"] = $(".mail").next(".error-message").fadeIn(1000).text("Veuillez  bien renseigner l'email !")
              }else{
                if(!$(".mail").val().match(/^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/)){
                  error["mail"] = $(".mail").next(".error-message").fadeIn(1000).text("Votre email n'est pas valide !")
                }
                else
                  $(".mail").next(".error-message").fadeOut()
              }
     
              if(!error["mail"] && !error["identif"]){
                var $this = $(".envoi")
                    $this.attr("disabled", "disabled") 
                        setTimeout(function(){
                          $this.attr("value", "Chargement...")
                                  .css({
                                        opacity : 0.4,
                                        cursor  : "not-allowed" 
                                    })
                        },300)
     
                        // Appel de la fonction qui fera la requête Ajax
                        app.reqAjax()
     
                        return false
              }
     
            }// End test
     
         },
        reqAjax: function(){
           console.info("app.reqAjax")
     
           // On récupère l'url et le type
                //var url  = this.action
                var url  = Routing.generate('fullz')
     
    	   //var type = this.method
                var type  = 'POST'
     
          // On récupère les infos (identif et mail) 
          // var data = $(this).serialize()
    	var data = form.serialize()
     
          // On fait la requête
          $.ajax({
    	type: type,
            url: url,
            data: data,
            success: app.showSuccess
          })
     
        },
     
         showSuccess: function(){
           console.info("app.showSuccess")
     
           // On crée la div qui servira de griser le fond....
           var popup = $("<div>",{
             class: "test",
             css:{
             background: "rgba(0,0,0,.8)",
    		 width: "100%",
    		 height: "100%",
             position: "fixed",
    		 top: 0,
    		 left: 0,
             "z-index": 1
             }
           })
     
          // On ajoute la DIV (grisée) au body
          $("body").append(popup)
     
          // On l'a fait apparaitre après quelques sécondes...
          popup.fadeTo(600, 0.5, function () {
            // On fait apparaitre le POPUP ,après quelques sécondes...
            $(".recupPopup").fadeIn(4000)
          })
         }
     
    }
     
    /*
     * Chargement du DOM
     */
    $(function(){
        app.init();
    })

    Le formulaire : index.html.twig

    <div id="form">
            {{ form_start(form,{'attr' : {novalidate : 'novalidate' ,action : ''}}) }}
                  <div class ="identif">
                      {{ form_errors(form.identif,{'class':'error-message'}) }}
                      {{ form_label(form.identif) }} <span class ="error" title="This field is required" >*</span>
                      {{ form_widget(form.identif,{'attr' : {'placeholder' : 'Ex : alouette'}}) }}
                      <span class = "error-message">error</span>
                  </div><!-- endidentif -->
     
                <div class ="mail">
                    {{ form_errors(form.mail,{'class':'error-message'}) }}
                    {{ form_label(form.mail) }} <span class ="error" title="This field is required" >*</span>
                    {{ form_widget(form.mail,{'attr' : {'placeholder' : 'Ex: mignonne@hotmail.fr'}}) }}
                    <span class = "error-message">error</span>
                </div><!-- endmail -->
     
                {#<div class ="sender">#}
                    {{ form_widget(form)}}
                {#</div>#}
                {{ form_rest(form) }}
            {{ form_end(form) }}
        </div><!-- endform -->

    Merci de votre aide .



    • Partager sur Facebook
    • Partager sur Twitter
    http://dev-muss.fr  >>> à la recherche du savoir :-)
      28 juillet 2017 à 7:43:58

      Pour un simple formulaire a envoyer et récupérer les valeurs saisies par l'utilisateur, tout cela est bien compliqué.

      Symfony, twig. .... à les joies de l'intégration pour l'intégrateur.

      Preuve que les developpeurs ben .... ne savent plus développer.

      C'est balot 

      -
      Edité par Mon nom est God ; phil God 28 juillet 2017 à 7:44:40

      • Partager sur Facebook
      • Partager sur Twitter
      J'échange des connaissances. Si je les donnais, je n'en aurais plus
        29 juillet 2017 à 3:55:39

        Mon nom est God ; phil God a écrit:

        Pour un simple formulaire a envoyer et récupérer les valeurs saisies par l'utilisateur, tout cela est bien compliqué.

        Symfony, twig. .... à les joies de l'intégration pour l'intégrateur.

        Preuve que les developpeurs ben .... ne savent plus développer.

        C'est balot 

        -
        Edité par Mon nom est God ; phil God il y a environ 20 heures


        :waw: goddd Alors dieu me guidera au nom du père phil

        -
        Edité par avion 29 juillet 2017 à 4:01:28

        • Partager sur Facebook
        • Partager sur Twitter
        http://dev-muss.fr  >>> à la recherche du savoir :-)

        vérification et envoie de formulaire avec jquery

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown