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

jQuery Discussion :

Passer une variable à une autre page [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut Passer une variable à une autre page
    Bonjour,
    Je tente de passer une variable d'une twig vers une autre (je suis sous Symfony 4.2). Seulement je rencontre une difficulté
    Voici mon ajax:
    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
              <script>
                function UeToListEmargements(Ue)
                {		
                  alert(Ue);
                  $.ajax({
                    method: "POST",
                    //url: "src/Controller/PanelProfController.php",
                    url: "{{ path('emargementsParCours') }}",
                    data: { Ue : Ue }
                  })
                  .done(function( retour_html ) {
                    $("#UeGet").html( retour_html );
                  })
                  .fail(function() {
                    alert( "error UeToListEmargements()" );
                  });
                  window.location.href = '{{ path('emargementsParCours') }}';
                }
              </script>
    J'ai créé un window location, car sinon ma page n'est pas redirigé.
    Mon alert de ma variable me renvoie bien la bonne valeur, mais pourtant quand je rentre dans l'ajax l'erreur du .fail ressort.
    Une fois que j'arrive sur la page "emargementsParCours", ma console m'indique que ma variable n'est pas définie.
    Une idée? Svp ne pas détruire tout ce que j'ai fais, je dois être à un détail près d'y parvenir.
    Merci d'avance à tous

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    J'ai créé un window location, car sinon ma page n'est pas redirigé.
    cela signifie que ta démarche n'est pas la bonne, si u veux rediriger il ne te faut pas passer par Ajax.

    mais pourtant quand je rentre dans l'ajax l'erreur du .fail ressort.
    c'est donc qu'il y a un problème et dans ce cas autant afficher l'erreur ou regarder dans la console.

    Une idée? Svp ne pas détruire tout ce que j'ai fais, je dois être à un détail près d'y parvenir.
    Plutôt qu'une idée, un conseil, toujours commencer par regarder le code HTML généré, et comme tu l'as sous la main nous mettre celui-ci en lieu et place du code serveur

  3. #3
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut
    Bonjour et merci pour ta réponse.
    Ah donc je ne sais pas, en fonction de mon cas, ce que je dois utiliser : si je dois passer par de l'ajax, ou par autre chose.
    Ce que je veux faire : j'ai une liste de cours, et je veux que lorsque je clic sur l'un d'eux, je me retrouve sur une page (qui est commune à chacune). La seule différence devra être le nom du cours en question bien sûr.
    Voici mon code HTML et mon AJAX :
    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
    25
    26
    27
             <h3> Liste des cours que vous dispensez </h3>
             	{% for elementListePointage in listeDePointage %}
                <script>
                  var Ue = '{{ elementListePointage.nomUe }}';
                  //alert(Ue);
                </script>
                <input type="button" onclick="UeToListEmargements(Ue)" value="{{ elementListePointage.nomUe }}" class="btn btn-success" /></div>
              <script>
                function UeToListEmargements(Ue)
                {           
                  alert(Ue);
                  $.ajax({
                    method: "POST",
                    url: "{{ path('emargementsParCours') }}",
                    data: { Ue : Ue }
                  })
                  .done(function( retour_html ) {
                    $("#UeGet").html( retour_html );
                  })
                  .fail(function() {
                    alert( "error UeToListEmargements()" );
                  });
                  window.location.href = '{{ path('emargementsParCours') }}';
                }
              </script>
     
              {% endfor %}
    Indication : mon alert(Ue) me renvoie bien le cours que j'ai choisie à chaque fois. Et si le .fail se déclenche quand je clic sur un cours, c'est que la fonction est bien appelée. Alors si la fonction est appelé, la variable est bien présente, qu'est-ce qui cloche? Pour rappel je suis sous symfony 4.2.
    Vois-tu quelque chose qui cloche dans mon code qui déclencherait mon .fail?
    Merci!

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    On n'a toujours pas
    le code HTML généré, et comme tu l'as sous la main nous mettre celui-ci en lieu et place du code serveur
    ... mais bon !


    Ce que je veux faire : j'ai une liste de cours, et je veux que lorsque je clic sur l'un d'eux, je me retrouve sur une page (qui est commune à chacune). La seule différence devra être le nom du cours en question bien sûr.
    Visiblement l'appel Ajax semble effectivement une solution.


    Indication : mon alert(Ue) me renvoie bien le cours que j'ai choisie à chaque fois.
    Normal c'est en entrée de fonction, cela montre juste que ta fonction est bien appelée.


    Vois-tu quelque chose qui cloche dans mon code qui déclencherait mon .fail?
    Ce qui cloche c'est que tu n'utilises pas les paramètres en retour dans ta méthode fail pour savoir ce qui se passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    .fail(function (arg) {
      console.log("ERROR :", arg);  // F12 pour accéder à la console
    });

  5. #5
    Membre éclairé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2018
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2018
    Messages : 300
    Par défaut
    le code HTML généré, et comme tu l'as sous la main nous mettre celui-ci en lieu et place du code serveur
    Désolé je ne vois pas ce que tu cherches! j'ai déjà posé le HTML, tu veux des captures d'écrans ou autre chose?

    Voici ce que ressort le console.log :
    Nom : console.png
Affichages : 956
Taille : 7,9 Ko
    sur la droite tu peux voir que la première erreur vient du console.log de ma page initiale "profListeCours", et ensuite j'accède à la page où la variable n'est donc pas définie puisqu'elle n'est pas bien passé "emargementParCours".

    en déroulé:
    Nom : azaz.png
Affichages : 957
Taille : 9,2 Ko
    Merci d'avance!

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    ... j'ai déjà posé le HTML ...
    non tu as posté le code HTML que tu as écrit mais le code HTML généré mais bon ! Le but est juste de voir ce qu’interprète le navigateur et si cela correspond à ce que tu souhaites réellement.

    Si je reprend ton appel Ajax dans ta fonction
    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
    function UeToListEmargements(Ue) {
        alert(Ue);
        $.ajax({
            method: "POST",
            url: "{{ path('emargementsParCours') }}",
            data: {
                Ue: Ue
            }
        }).done(function (retour_html) {
            $("#UeGet").html(retour_html);
        }).fail(function () {
            alert("error UeToListEmargements()");
        });
        window.location.href = '{{ path('emargementsParCours ') }}';
    }
    on voit que window.location.href = '{{ path('emargementsParCours ') }}' s’exécute potentiellement avant ton retour Ajax, qui est asynchrone, donc le JavaScript de ta page en cours « meurt ».

    Met en commentaire la ligne : window.location ..., et regarde ce qui se passe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lien vers autre page Twig Symfony
    Par devvve dans le forum Symfony
    Réponses: 1
    Dernier message: 12/03/2020, 06h00
  2. lien hypertext twig symfony 4
    Par linuxien_62 dans le forum Symfony
    Réponses: 4
    Dernier message: 11/04/2019, 13h55
  3. Ajax, Twig, et Symfony
    Par 4dr138 dans le forum AJAX
    Réponses: 0
    Dernier message: 05/01/2018, 16h33
  4. Plugins Yedit, Twig, Symfony : où sont-ils ?
    Par Sable12 dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 05/06/2012, 14h32
  5. [2.x] [TWIG] Symfony m'entoure tout le code d'une balise <HTML> !
    Par Le Barde dans le forum Symfony
    Réponses: 3
    Dernier message: 25/08/2011, 13h32

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