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 :

Passage de variables PHP en JS


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut Passage de variables PHP en JS
    Bonsoir bonsoir.

    Voilà je dois passer une variable PHP en JS mais je n'y arrive pas. Je ne connais pas bien le JS et comme c'est pour le boulot, je n'ai malheureusement pas le choix que de faire avec. JE dois ajouter un module à un groupware déjà existant...

    Bref, voilà le problème.

    Je définis une variable ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script>
    var ID = <?php echo $donnees['id_evenement']; ?>;
    </script>
    Je crée mon lien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="../templates/module_evenement/ajouter_message.png" onclick="popup('sujet_edit.php?id=ID');" onMouseOver="bulle('Modifier l\'évènement');" onMouseOut="bullefin()" />
    Je n'ai pas le choix de définir autrement, car tout le groupeware a ses liens ainsi sauf qu'il passe ses variables par des éléments que j'ai enlevés, donc je n'ai pas de choix.

    Enfin quand je récupère sur mon autre page la variable, je récupère ID au lieu de sa valeur.

    Je vous remercie par avance si vous pouvez m'aider.

    Bon week-end.

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Utilise la concatenation des chaines de caracteres :
    "popup('sujet_edit.php?id='+ID);"
    Comment javascript pourrait savoir que tu parles de la variable ID et non pas de la chaine de caractères "ID" ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Nickel, ça fonctionne à merveille.

    Merci beaucoup

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Je reviens car si ça fonctionne pour ce cas là, j'ai un autre cas où ça ne fonctionne pas.

    C'est un vrai casse tête le javascript

    Voilà maintenant ma source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function disp_confirm()
    {
    var ID = <?php echo $donnees['id_log']; ?>;
    var r=confirm("Etes vous sûr de vouloir supprimer la société ?");
    if (r==true)
      {
      window.location="./aspim.php?p=21&id='+ID+'&value=del";
      }
    else
      {
      document. reload();
      }
    }
    J'ai essayé : '+ID'&; '+ID& et autres trucs illogiques mais ma variable ne passe toujours pas .

    Que dois-je faire ?

    Merci beaucoup pour votre patience, j'essaie de comprendre mais c'est pas du PHP donc j'galère un max.

    Edit : L'erreur est ailleurs. Je remet en résolu.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.location="./aspim.php?p=21&id="+ID+"&value=del";
    Je suis nul à cet exercice de quotes et dblquotes...mais je tente une réponse.

    Ou pourquoi pas '"+ID+"'

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Essaye de remplacer tes simple quote par des doubles quote au niveau de ID
    window.location="./aspim.php?p=21&id="+ID+"&value=del";

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    En effet, ça fonctionne

    Malgré tout, ceci aussi fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function disp_confirm()
    {
    var r=confirm("Etes vous sûr de vouloir supprimer la société ?");
    if (r==true)
      {
      window.location="./aspim.php?p=21&id=<?php echo $donnees['id_log']; ?>&value=del";
      }
    else
      {
      document. reload();
      }
    }
    Juste une petite question. Ma fonction est dans une boucle mais elle ne veut pas prendre la valeur qu'il faut, mais seulement la dernière. J'ai cru que mon problème était JS, mais peut-être pas.

    Bref. Merci les gens.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Je ne comprends pas trop ton pb de boucle ... Si tu pouvais etailler ta demande ce serait cool ! Merci ...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    OK let's go.

    Voici le code complet :

    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
     
    	$requete = mysql_query("SELECT * FROM users WHERE id_log > 2 ORDER BY login");
    	while ($donnees = mysql_fetch_array($requete))
    	{	 
    ?>
    <script>var ID = <?php echo $donnees['id_log']; ?>;	</script>
    		<script type="text/javascript">
    var ID = <?php echo $donnees['id_log']; ?>;	
    function disp_confirm()
    {
     
    var r=confirm("Etes vous sûr de vouloir supprimer la société ?");
    if (r==true)
      {
      window.location="./aspim.php?p=21&id="+ID+"&value=del";
      }
    else
      {
      document. reload();
      }
    }
    		</script>
     
    		<tr>	
    			<td class="nom"><span class="majuscule"><?php echo $donnees['login']; ?></span></td>
    			<td class="groupe"><span class="majuscule"><?php echo $donnees['groupe']; ?></span></td>
    			<td><form action="./aspim.php?p=21&id=<?php echo $donnees['id_log']; ?>" method="post"><input type="submit" value="Voir / Modifier"/></form></td>
    			<td><input type="button" onclick="disp_confirm()" value="Supprimer"/></td>
    		</tr>		
    <?php
            }
    ?>		</table>
    Alors au début, je n'avais pas mis de bouton de confirmation, donc pas de JS et ma boucle fonctionnait bien. JE supprimais la ligne de ma BDD sans souci.
    Depuis que j'ai mis la fonction js de confirmation, l'id passé n'est plus celui de la boucle mais le dernier de la base . Pourtant mon $donnees['id_log'] est juste puisque le bouton modifier m'envoie bien sur la fiche du client.

    Voili voilou

    Il est possible que j'eusse fait des erreurs en modifiant le code, enlevant une ligne importante, mais là j'vois pas le souci.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Alors, je ne sais pas si ça va t'aider mais moi y a un truc que je trouve bizarre.
    Tu déclare ta variable ID en dehors de ta fonction et tu l'utilises dans ta fonction. Pour moi c'est étrange. J'ai jamais fait cela mais peut etre que ça marche bien ...
    Le premier test que je ferai donc c'est de tester avec var ID défini dans la fonction.

    Ensuite ce que je ne fais jamais (mais c'est peut etre parce que je suis de l'ancienne école) c'est définir une fonction dans une boucle. Moi j aurai en debut de fichier déclaré ma fonction avec comme parametre ID.
    Puis j aurai fait l appel dans la boucle ainsi :
    var ID = <?php echo $donnees['id_log']; ?>;
    disp_confirm(ID);
    Tiens moi au courant si ça améliore qqchose bien que je n'y crois pas des masses.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Salut.

    J'avais au début déclaré ma variable dans la fonction. Puis je l'ai mise hors. Cela n'a rien changé.

    J'ai déclaré ma fonction entre les balises head comme c'est conseillé et j'ai testé.
    Ca ne fonctionne pas. Ma variable ID n'est jamais celle qu'il faut.
    JE ne comprends pas car j'utilise juste apres ma variable $donnees['id_log'] et elle correspond bien.

    Que se passe-t-il ? Le JS ne comprend pas les while ?

    Merci de ta réponse

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 120
    Par défaut
    Le js n'a pas à comprende le while car de toute façon ton while est dans le php ...

    Alors si je comprens bien : $donnees['id_log'] est bon mais pas ID ???

    C'est plus qu étrange en effet ...
    <script>var ID = <?php echo $donnees['id_log']; ?>; </script>
    <script type="text/javascript">
    var ID = <?php echo $donnees['id_log']; ?>;
    Déjà tu peux peut etre virer la premiere ligne car c'est redondant ...
    si après " var ID = <?php echo $donnees['id_log']; ?>; " tu mets
    alert("ID : "+ID+", donnees : "+ <?php echo $donnees['id_log']; ?>);
    T as pas la même chose ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Par défaut
    Une solution m'a été donnée qui fonctionne mais qui rame :

    mettre : function disp_confirm(ID)

    Et au lieu de définir ma variable par JS, mettre : onclick="disp_confirm(<?php echo $donnees['id_log']; ?>)".

    Donc je vais mettre en résolu.

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

Discussions similaires

  1. passage de variable à php
    Par pière2 dans le forum Intégration
    Réponses: 0
    Dernier message: 02/08/2009, 11h12
  2. [PHP-JS] Passage de variable PHP dans une fonction JS
    Par redvivi dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2008, 13h07
  3. Réponses: 1
    Dernier message: 29/02/2008, 03h15
  4. [PHP-JS] Passage de variable php/Js
    Par dark_vidor dans le forum Langage
    Réponses: 14
    Dernier message: 09/12/2005, 22h31
  5. [PHP-JS] passage de variable php a javascript
    Par limpins dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/07/2005, 11h54

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