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 :

Passer une variable JavaScript en PHP/HTML


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Femme Profil pro
    �tudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Par d�faut Passer une variable JavaScript en PHP/HTML
    Bonjour,

    Cela fait maintenant quelque jours que je cherche une r�ponse � mon probl�me sans succ�s donc je le pose ici en esp�rant avoir des r�ponses.

    Alors voil�, je code un site avec Symfony sur PhpStorm. Dans mon site j'ai fait un bouton dynamique qui fait apparaitre une liste d�roulante � chaque fois que l'utilisateur touche le bouton. Je veux maintenant r�cuperer chaque valeur choisie pour les listes cr�es et les enregistrer avec DOCTRINE. Cependant je n'ai pas trouv� de m�thode ad�quate...

    Voici ce que j'ai essay�:

    J'ai fait le bouton dans mon fichier html. � l'aide de Js j'ai fait apparaitre des listes � chaque clique de bouton. Dans ma fonction Js j'ai mis un compteur afin de savoir combien de listes on �t� cr��e.
    Voici le code 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
      <script>
                var compteur=0;
                function viewListe(){
                    document.getElementById('maListe').innerHTML += '            <label for="userR">\n' +
                        '            <select name="'+compteur+'" id="'+compteur+'" >\n' +
                        '                <option value="vide">Pour validation</option>\n' +
                        '                {% for user in listeUsers %}\n' +
                        '                    {% if userCo.id!=user.id %}\n' +
                        '                        <option value="{{ user.id }}">{{ user.lastname|upper }} {{ user.firstname }}</option>\n' +
                        '                    {% endif %}\n' +
                        '                {% endfor %}\n' +
                        '               <option value="compteur">'+compteur+'</option>\n' +
                        '            </select>\n' +
                        '            </label> <br/>';
                        compteur++;
                }
     
            </script>
    Voici le code du bouton en question:

    Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
            <input type="button"  onclick="viewListe()" value="+"><br/>
            <p id="maListe"></p><br/>


    Ce que je voulais faire ensuite �tait de r�cup�rer les valeurs de chaque liste dans mon controller � l'aide d'une boucle for. For(i=0;i<compteur;i++): r�cup�rer les valeurs des listes i et les enregistrer. J'ai essay� par exemple d'ajouter 3 listes de mettre un i<3 dans mon for pour voir si tout s'enregistrer bien comme il faut et c'est le cas. Cependant impossible pour moi de trouver comment r�cup�rer la valeur du compteur pour l'utiliser dans mon for.

    Voici ma boucle for:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                    for($i=0;$i<3;$i++){
                        $idR=$request->request->get($i);
                        $identifiantR=new Identifiants();
                        $utilisateurR=$this->getDoctrine()->getRepository(User::class)->find($idR);
                        $identifiantR->setUserFiche($utilisateurR);
                        $identifiantR->setFicheNCUser($ficheNC);
                        $identifiantR->setStatut('Reçue');
                        $manager->persist($identifiantR);
     
                    }
    Qui lorsque je pose le nombre de liste marche tr�s bien.

    Je n'ai r�ussi nul part � trouver comment r�cup�rer ma variable compteur de Js dans ma boucle for Php et je commence � croire que ce n'est pas possible.... Si quelqu'un peut m'aider � trouver comme r�cup�rer ma variable compteur, ou � trouver un autre moyen de r�cup�rer les valeurs des listes pour pouvoir les enregistrer je leur en serai tr�s reconnaissante.

    Merci beaucoup Smiley smile

  2. #2
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    Quand tu envoies un formulaire au serveur, seuls les �l�ments du formulaire sont envoy�s; ce qui est logique;
    Php va juste lire les donn�es ayant l'attribut "name";

    autrement dit, tu dois donner � un champ cach� de ton formulaire la valeur de ta variable compteur;

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <input type="hidden" name="compt" />

    et au d�but de ta fonction viewListe, tu ins�res:

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById("monformulaire").value=compt;

  3. #3
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    J'oubliais: il est toujours conseill� de nommer les variables en commen�ant par une lettre plut�t que de leur donner un id ou un name uniquement num�rique ("liste"+compteur);

  4. #4
    Membre confirm�
    Femme Profil pro
    �tudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Par d�faut
    Merci beaucoup javatwister ! cependant, je ne comprends pas comment compt est reli� � la variable compteur et prend sa valeur... De plus, lorsque j'ajoute document.getElementById("monformulaire").value=compt; au tout d�but de mon viewListe mon bouton "+" ne marche plus et ne fais plus apparaitre des nouvelles listes... Donc je l'ai mis apr�s (mais avant l'incr�mentation de compteur) et le bouton marche � nouveau. Cependant apr�s avoir fait $request->request->get('compt') dans mon controller php, la variable compt est vide, ce qui me semble normal car je n'ai pas l'impression l'avoir reli�e � la variable compteur de la fonction PHP, mais je ne vois pas comment la lier � cette variable...

    Encore Merci !

  5. #5
    Membre tr�s actif

    Homme Profil pro
    sans
    Inscrit en
    Octobre 2019
    Messages
    205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ari�ge (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : sans

    Informations forums :
    Inscription : Octobre 2019
    Messages : 205
    Par d�faut
    Salut
    Je sais pas si ma methode marche dans tous les cas, mais je faisais un cookie en PHP et je le lisais apres avec js

  6. #6
    Membre confirm�
    Femme Profil pro
    �tudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Par d�faut
    Bonsoir amateurprg,
    Merci pour ta r�ponse, mais dans ce que tu dis c'est pas plut�t une variable Php qui est r�cup�r�e en js ?

  7. #7
    Membre tr�s actif

    Homme Profil pro
    sans
    Inscrit en
    Octobre 2019
    Messages
    205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ari�ge (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : sans

    Informations forums :
    Inscription : Octobre 2019
    Messages : 205
    Par d�faut
    je comprend pas, tu voulais me faire un message ?

    Lol, je sais pas comment t'a fait mais je repond � ton mp et je me retrouve sur le forum, lol

  8. #8
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    salut,

    La solution o� on en �tait rest� hier �tait fiable; il faut simplement que tu sois un peu plus rigoureuse:

    Par exemple, tu appelles le champ cach� avec document.getElementById('compt');
    mais tu oublies que ton champ n'a pas d'id...; bref, corrige dans le formulaire:

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <input type="hidden" name="compt" id="compt" />

    2e chose, je t'avais conseill� de donner la valeur de "compteur" au d�but de ta fonction, c'est-�-dire avant l'incr�mentation (++);

    Bref, si avant de venir nous voir tu r�cup�rais bien des donn�es sur ta page de destination, c'est que ton formulaire fonctionnait. Il n'y a pas de raison pour qu'il soit tomb� en panne

  9. #9
    Membre confirm�
    Femme Profil pro
    �tudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Par d�faut
    Bonjour Javatwister,

    En effet, je n'avais pas vu que mon div cach� n'avait pas d'id.

    Cependant m�me apr�s modification du code, la variable compt n'est pas r�cup�r�e en php...

    Voici mon code modifi� pour la partie Js/HTML:

    Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
    <input type="hidden" name="compt" id="compt" />

    Code JAVASCRIPT : 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
    <script>
                var compteur=0;
                function viewListe(){
     
                    document.getElementById('maListe').innerHTML += '            <label for="userR">\n' +
                        '            <select name="'+compteur+'" id="'+compteur+'" >\n' +
                        '                <option value="vide">Pour validation</option>\n' +
                        '                {% for user in listeUsers %}\n' +
                        '                    {% if userCo.id!=user.id %}\n' +
                        '                        <option value="{{ user.id }}">{{ user.lastname|upper }} {{ user.firstname }}</option>\n' +
                        '                    {% endif %}\n' +
                        '                {% endfor %}\n' +
                        '               <option value="compteur">'+compteur+'</option>\n' +
                        '            </select>\n' +
                        '            </label> <br/>';
                    document.getElementById('compt').innerHtml=compteur;
                    compteur++;
     
                }
     
            </script>

    Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
            <input type="button"  onclick="viewListe()" value="+"><br/>
            <p id="maListe"></p><br/>

    et voici ma fonction for en php:

    Code PHP : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $compteur=$request->request->get('compt');
                   for($i=0;$i<$compteur;$i++){
                        $idR=$request->request->get($i);
                        $identifiantR=new Identifiants();
                        $utilisateurR=$this->getDoctrine()->getRepository(User::class)->find($idR);
                        $identifiantR->setUserFiche($utilisateurR);
                        $identifiantR->setFicheNCUser($ficheNC);
                        $identifiantR->setStatut('Reçue');
                        $manager->persist($identifiantR);
     
                    }

    Mais cela ne r�cup�re toujours pas compt... Lorsque je mets par exemple 3 � la place de la variable compteur dans le for, �a marche parfaitement et enregistre tout ce qu'il faut, mais quand je mets la variable compteur c'est comme s'il n'y avait pas de boucle for et �a n'enregistre rien...

    Merci !

  10. #10
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    Un �l�ment input a un innerHTML nul! C'est value qu'il faut affecter...

Discussions similaires

  1. Passer une variable javascript en php
    Par MN_jacques dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 20/03/2019, 08h46
  2. [AJAX] Passer une variable javascript � du php
    Par wallouxx dans le forum jQuery
    R�ponses: 3
    Dernier message: 01/10/2014, 09h18
  3. Passer une variable javascript en php
    Par dam28800 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 18/12/2009, 15h27
  4. Passer une variable javascript en php
    Par remrem13 dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 21/04/2009, 10h32
  5. [PHP-JS] Passer une variable javascript en php
    Par bibom dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 11/08/2006, 20h39

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