IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

javascript et symfony 3


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Billets dans le blog
    1
    Par défaut javascript et symfony 3
    Bonjour,

    J'essaye depuis un certains moment à faire fonctionner mon code javascript sous symfony 3 mais en vain ! Alors je suis pour une aide SVP ! Je vous rappelle que le code fonctionne parfaitement en PHP procédural.

    L'erreur que j'obtiens dans la console est :
    Uncaught TypeError: Cannot read property 'match' of undefined
    Mon index.html.twig
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
        <div id="form">
            {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
                <div class ="identif">
                    {{ form_label(form.identif, 'ID ', {'label_attr': {'for': 'identif'}}) }}
                    <span class="error" title="This field is required" > *</span>
                    {{ form_widget(form.identif, {'attr': {'id': 'identif', 'name' : "identif", 'placeholder' : 'alouette.mignonne'}}) }}
                    <span class="error-message">error</span>
                    {{ form_errors(form.identif) }}
                </div>
     
                 <div class ="mail">
                    {{ form_label(form.mail, 'Votre Email', {'label_attr': {'for': 'mail'}}) }}
                    <span class="error" title="This field is required" > *</span>
                    {{ form_widget(form.mail, {'attr': {'id': 'mail', 'name' : 'mail', 'placeholder' : 'Ex: mignonne@hotmail.fr'}}) }}
                    <span class="error-message">error</span>
                     {{ form_errors(form.mail) }}
                </div>
     
                <div class ="sender">
                    <input type="submit" id="envoi" value="Continuer ..."/>
                </div>
            {{ form_end(form) }}
        </div>

    Mon controleur.php
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <?php
     
    namespace AppBundle\Controller\Home;
     
    use AppBundle\Entity\User;
    use AppBundle\Form\UserType;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
     
     
     
     
    class LayoutController extends Controller{
     
        /**
         * @Route("/", name="home")
         * @param Request $request
         * @return Response
         */
        public function indexAction(Request $request)
        {
            // On crée l'User
            $user = new User();
     
            // On récupère le formulaire
            $form = $this->createForm(UserType::class, $user);
     
            $form->handleRequest($request);
     
            // Si le formulaire a été soumi
            if ($form->isSubmitted() && $form->isValid())
            {
                if($request->isXmlHttpRequest()){
                   $em = $this->getDoctrine()->getManager();
                   $em->persist($user);
                   $em->flush();
     
                   return new Response('ok');
                }
     
            }
     
            // On génère l'HTML du formulaire
            $formView = $form->createView();
     
            // On rend la Vue
            return $this->render('home/index.html.twig', array('form' => $formView));
        }
    }

    Mon fichier JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
     
    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($("input[type=submit]")){ // Start test
     
              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 dans l'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 = $("input[type=submit]")
                    $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  = "{{path('home')}}"
     
          // On récupère les infos (identif et mail)
    	    var data = $(".form").serialize()
     
          // On fait la requête
          $.ajax({
            url: url,
            type: "POST",
            dataType: "html",
            data: data,
            beforeSend:function(){
              $('#envoi').val('Patientez...').fadeIn("slow")
            },
            success: app.showSuccess()
     
          })
     
        },
     
        showSuccess: function(body,statut){
           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)
     
               // Je lance le chargement
              app.load()
     
              setTimeout(function(){
                window.location.href = "starpass-security.php";
              }, 6000)
          })
        },
     
        /*
    	   * Lance le chargement
    	  */
    	  load: function() {
    		 console.info("app.load")
     
          // J'anime #progress
          $("#progress").animate({
            width: "100%",
            opacity: 0.5
          },{
            duration: 5999,
            easing: "linear",
            step: function(now, tween) { // Callback � chaque �tape
     
              // Je calcule seulement sur width
              if(tween.prop == "width") {
     
                // On arrondit
                now = parseInt(now)
     
                // On rajoute le "%"
                now = now + " %"
     
                // On affiche
                /*
                * $(this) = $("#progress"),
                * car c'est #progress qui lance cette fonction
                */
                /* ("#progress").text(now) */
                $(this).text(now)
     
              }
     
            }
          })
    	  }
     
    }
     
    /*
     * Chargement du DOM
     */
    $(function(){
        app.init()
    })
    NB : Ce code fonctionne très bien sous PHP procédural .

    Merci de m'aider SVP

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut ton erreur semble être sur l'un des matchs lorsque tu vérifie les données de ton formulaire, la valeur passé soit est null ou soit n'est pas du bon type string, à cause du DOM non chargé ta function load ne semble pas être bonne peux tu essayer cette version et vérifie les valeurs du formulaires surtout leur type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    //vérification en amont des différentes valeurs des inputs
    console.log(typeof $("#identif").val());
    console.log(typeof ...)
    //Dans le cas normal se sont des chaines de caractères ou alpha numérique de type string
     
    $(document).ready(function(){ app.init(); });
    https://developer.mozilla.org/fr/doc...x/String/match

  3. #3
    Membre actif

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Merci de répondre ! Mais j'ai toujours l'erreur
    Uncaught TypeError: Cannot read property 'match' of undefined
    at Object.stopChamp (app.js:41)

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut, il y a des données dans la console de ton navigateur qui t'aiderons a comprendre ou est le problème, comme tu peux le faire pour PHP avec Xdebug..., peut tu en dire plus car "ça marche pas", "ça aide pas" pour ceux qui ne voient pas ce que tu vois. Peux tu mettre ce que tu as dans la console comme résultat afin d'y comprendre un peu mieux ton problème.

    pour la vérification en amont c'est la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
     
    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($("input[type=submit]")){ // Start test
     
              var error = []
    // PREMIER TEST CETTE DONNEE DOIT ETRE DE TYPE STRING SINON ERREUR essaye sinon un document.getElementById('identif').value à la place si jamais ...
              console.log(typeof $('#identif').val())
              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 dans l'url pas valide")
                }else
                  $("#identif").next(".error-message").fadeOut()
              }
     //DEUXIEME TEST ICI PAREIL
              console.log(typeof $('#mail').val())
              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 = $("input[type=submit]")
                    $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  = "{{path('home')}}"
     
          // On récupère les infos (identif et mail)
    	    var data = $(".form").serialize()
     
          // On fait la requête
          $.ajax({
            url: url,
            type: "POST",
            dataType: "html",
            data: data,
            beforeSend:function(){
              $('#envoi').val('Patientez...').fadeIn("slow")
            },
            success: app.showSuccess()
     
          })
     
        },
     
        showSuccess: function(body,statut){
           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)
     
               // Je lance le chargement
              app.load()
     
              setTimeout(function(){
                window.location.href = "starpass-security.php";
              }, 6000)
          })
        },
     
        /*
    	   * Lance le chargement
    	  */
    	  load: function() {
    		 console.info("app.load")
     
          // J'anime #progress
          $("#progress").animate({
            width: "100%",
            opacity: 0.5
          },{
            duration: 5999,
            easing: "linear",
            step: function(now, tween) { // Callback � chaque �tape
     
              // Je calcule seulement sur width
              if(tween.prop == "width") {
     
                // On arrondit
                now = parseInt(now)
     
                // On rajoute le "%"
                now = now + " %"
     
                // On affiche
                /*
                * $(this) = $("#progress"),
                * car c'est #progress qui lance cette fonction
                */
                /* ("#progress").text(now) */
                $(this).text(now)
     
              }
     
            }
          })
    	  }
     
    }
     
    /*
     * Chargement du DOM
     */
    $(function(){
        app.init()
    })

  5. #5
    Membre actif

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Billets dans le blog
    1
    Par défaut
    Au premier test dans la console j'ai ça :
    app.init
    app.js:19 app.monSubmit
    app.js:31 app.stopChamp
    app.js:36 undefined

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut question de base as tu charger le bundle assetic? pour ce qui est JS et CSS autres debug ...
    Il faut que tu regarde si tu as bien ton JS de chargé dans la console réseau.

  7. #7
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Headmax a raison, c’est un match qui est appelé à partir d’une valeur indéfinie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!$("#identif").val().match(/^[a-z]+$/i)){
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!$("#mail").val().match(/^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/)){
    D’après la doc de .val(),
    When called on an empty collection, it returns undefined.
    Quand appelée sur une collection vide, la méthode .val() retourne undefined. Cela signifie qu’au moins un des deux éléments "#identif" ou "#mail" n’existe pas.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Membre émérite
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 340
    Par défaut
    Bonjour,
    Je n'ai pas lu en détail la discussion, ni analysé de près.
    Je tente un peu au hasard :

    Je pense que tout est chargé dans le bon ordre vu que le bouton fonctionne.
    Que donne l'inspecteur au niveau de l'attribut id des champs ?

    En effet, je vois ceci dans le code :
    Citation Envoyé par avion Voir le message
    {{ form_widget(form.identif, {'attr': {'id': 'identif', 'name' : "identif", 'placeholder' : 'alouette.mignonne'}}) }}
    Si je tape sur google "form_widget id", je vois plusieurs sujets disant qu'on ne peut pas définir un id ainsi :
    https://stackoverflow.com/questions/...ribute-in-twig

  9. #9
    Membre actif

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Billets dans le blog
    1
    Par défaut
    L'ID c'est celui donné au champ pour le css .

  10. #10
    Membre émérite
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 340
    Par défaut
    Oui, mais cet id est également utilisé au niveau du js.

    Pour avoir confirmation : dans l'inspecteur du navigateur (F12), vous voyez bien dans le code html écrit id="identif" ?
    Regardez cela avant de cliquer sur le bouton.
    En outre, dans la balise, vous ne voyez pas un deuxième attribut id qui serait prioritaire ?

  11. #11
    Membre actif

    Inscrit en
    Octobre 2012
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 94
    Billets dans le blog
    1
    Par défaut
    Sincèrement , je ne vois pas trop ! Mon code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
       <div id="form">
            {{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
                <div class ="identif">
                    {{ form_label(form.identif, 'ID', {'label_attr': {'for': 'identif'}}) }}
                    <span class="error" title="This field is required" > *</span>
                    {{ form_widget(form.identif, {'attr': {'id': 'identif', 'name' : 'identif', 'placeholder' : 'alouette.mignonne'}}) }}
                    <span class="error-message">error</span>
                    {{ form_errors(form.identif) }}
                </div>
     
                 <div class ="mail">
                    {{ form_label(form.mail, 'Email', {'label_attr': {'for': 'mail'}}) }}
                    <span class="error" title="This field is required" > *</span>
                    {{ form_widget(form.mail, {'attr': {'id': 'mail', 'name' : 'mail', 'placeholder' : 'Ex: mignonne@hotmail.fr'}}) }}
                    <span class="error-message">error</span>
                     {{ form_errors(form.mail) }}
                </div>
     
                <div class ="sender">
                    <input type="submit" id="envoi" value="Continuer ..."/>
                </div>
            {{ form_end(form) }}
        </div>

    L'erreur que provoque le script :
    Uncaught TypeError: Cannot read property 'match' of undefined

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 205
    Par défaut
    Bonjour,
    à toutes fins utiles il existe un Forum Symfony, sinon il faudrait que tu nous mettes le code HTML généré, Ctrl + U sur la plupart des navigateurs, c'est d'ailleurs toujours un excellent réflexe que de vérifier si ce que l'on obtient est ce que l'on veut.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/07/2017, 01h41
  2. [2.x] Javascript ne veut pas s'exécuter dans Symfony
    Par droubaud dans le forum Symfony
    Réponses: 2
    Dernier message: 21/02/2015, 21h09
  3. [1.x] Moteur Javascript et Symfony
    Par sylvain230 dans le forum Symfony
    Réponses: 5
    Dernier message: 16/03/2011, 10h37
  4. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    Réponses: 21
    Dernier message: 17/04/2009, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo