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 :

variables de PHP a JavaScript par fonction dans un fichier de fonctions


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut variables de PHP a JavaScript par fonction dans un fichier de fonctions
    Bonjour,

    probleme comme souligne avec le titre mais je developpe.
    j'ai vu qu'on pouvait passer des variables PHP a JavaScript... le tout dans la meme page .php... ok pas de probleme, j'y arrive aussi.

    ma situation:
    1 page .php
    1 fonction (dans 1 fichier de fonctions .js) qui ecrit un lien hypertexte dans la page .php.

    j'ai besoin de modifier ce lien hypertexte et de le rendre dynamique grace a des variables PHP declarees et definies dans la page .php

    j'ai essaye beaucoup de syntaxe mais rien a faire...
    par exemple:
    dans le fichier de fonctions .js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_nbre_demi_coups --- "<?php $_nbre_demi_coups; ?>"
    le premier affiche le nom de la variable tel quel
    le second m'affiche les apostrophes mais sans rien dedans

    encore un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    --- document.write("<?php $_commentez_01_nbre_demi_coups; ?>")
    affiche: --- document.write(undefined)

    j'ai meme essaye les fameux \'<php $_commentez_01_nbre_demi_coups; ?>\' (ecrit de memoire car j'ai plus le post sous les yeux) mais ce la ne marche toujours pas.

    idem si j'inclus les "echo" de php.

    Est-ce possible? Quelle est la syntaxe SVP? (sinon je peux essayer faire autrement... mais bon)

    neophyte en JavaScript
    amateur en php

    En vous remerciant,
    areuh

  2. #2
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    En utilisant echo pour afficher le contenu de la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_nbre_demi_coups = "<?php echo $_nbre_demi_coups; ?>";
    ... 
    document.write("<?php echo $_commentez_01_nbre_demi_coups; ?>");

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut
    bonjour,

    Eric2a, merci de ta reponse.
    je me rends compte que je n'ai pas été assez précis dans l'écriture du précédent post. J'y remédie car je ne comprends pas vraiment ce que tu as écrit.

    à savoir
    - je pars d'un fichier de fonctions .js que je n'ai pas écrit moi même.
    - je n' y comprends pas grand chose (le code est écrit super compact)

    ok,
    maintenant je pars du principe que je ne rajoute pas une ligne dans la page .php, mais uniquement dans la fonction du fichier de fonctions .js (je pense que c'est de cette manière que je dois lire tes lignes???)

    Voici la ligne originale que je veux modifier (balise fermante d'un lien hypertexte, que du texte quoi).
    pour reprendre ton code:
    - j'initialise une variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    commentez_01_nbre_demi_coups= "<?php $_commentez_01_nbre_demi_coups; ?>";
    Ensuite je concatene a la variable ss mais quelle que soit la syntaxe que j'utilise, je n'obtiens pas le resultat escompté.
    (j'ai decommenté toutes les lignes de code mais je les ai testeés 1 par 1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ss+='</a> ---- ' + document.write("<?php $_commentez_01_nbre_demi_coups; ?>") + '<br>'; // SORTIE: ---- undefined
    ss+='</a> -- ' + document.write("<?php echo $_commentez_01_nbre_demi_coups; ?>") + '<br>'; // SORTIE: --undefined
    ss+="</a> ---- " + document.write("<?php echo $_commentez_01_nbre_demi_coups; ?>"); // SORTIE: ---- undefined
    ss+="</a> ---" + commentez_01_nbre_demi_coups + "<br>"; // SORTIE: ---
    ss+="</a> ----'<?php $_commentez_01_nbre_demi_coups; ?>'"; // SORTIE: ----''
    ss+="</a> --- " + commentez_01_nbre_demi_coups; // SORTIE: ---
    ss+="</a> ----'<?php echo $_commentez_01_nbre_demi_coups; ?>'"; // SORTIE: ----''
    ss+="</a> --\'<?php echo $_commentez_01_nbre_demi_coups; ?>\'"; // SORTIE: --''
    ss+="</a> --\"<?php echo $_commentez_01_nbre_demi_coups; ?>\""; // SORTIE: --""
    ss+="</a> ---" + document.write(commentez_01_nbre_demi_coups) + "<br>"; // SORTIE: ---undefined
    ss+='</a> ----' + document.write(commentez_01_nbre_demi_coups) + '<br>'; // SORTIE: ----undefined
    Voilà, je suis bloqué là... si tu as une solution...
    Merci bien.
    a+
    areuh

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Tu persistes à oublier l'echo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<?php echo $_commentez_01_nbre_demi_coups; ?>";
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Oups ! Je crois que c'est ma faute... J'ai "buggé" dans mon post précedent à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _nbre_demi_coups = "<?php echo $_nbre_demi_coups; ?>";
    J'avais mis le '$' (non valide pour JS).

    Si les test on été effectués avec cette erreur, c'est normal que cela n'a pas fonctionné.

    Sinon, il y a deux manières de faire (toujours avec echo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var commentez_01_nbre_demi_coups='<?php echo $_commentez_01_nbre_demi_coups; ?>';
     
    // et ensuite...
     
    ss+='---'+commentez_01_nbre_demi_coups;
    ou directemment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ss+='---<?php echo $_commentez_01_nbre_demi_coups; ?>';
    Au passage, une ligne du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ss+='texte' + document.write(...);
    est invalide

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut
    hop,

    SpaceFrog: exact j'avais pas mis ce echo, désolé.
    Eric2a:
    non non j'avais enleve le $ et aussi tenté la declaration de variable avec et sans var.

    Quoiqu'il en soit, je suis désolé mais aucun succés dans tes lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var commentez_01_nbre_demi_coups='<?php echo $_commentez_01_nbre_demi_coups; ?>';
    ss+='---'+commentez_01_nbre_demi_coups;
    renvoie seulement ---

    et la seconde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ss+='----<?php echo $_commentez_01_nbre_demi_coups; ?>';
    renvoie aussi les traits d'union: ----

    je verrai ca demain. je vais reflechir a la seconde sol qui est de passer par une base de données... mais encore une fois si vous vlez des precisions.

    a+ et bonne soiree
    areuh

  7. #7
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Bête question mais vous êtes sûr que vos variables PhP existent et contiennent une valeur ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut
    bonjour,

    oui vermine, j'en suis sur.
    mes variables sont issues d'une page .php avec formulaire dynamique en POST.

    les 2 premieres servent a creer un lien hypertexte dynamique pour aller sur la seconde page .php (et j'y vais dc elles existent)
    la derniere: $_commentez_01_nbre_demi_coups: passe aussi par le formulaire dynamique et j'arrive a l'afficher dans cette seconde page .php
    de 2 manieres differentes:
    -- premiere maniere en l'appelant dans la seconde page .php au moyen d'un Javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.write("<?php echo $_commentez_01_nbre_demi_coups; ?>");
    qui me l'affiche correctement (dc elle existe aussi)

    -- seconde maniere directement en php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "nre DC: ".$_commentez_01_nbre_demi_coups;
    qui me l'affiche tout aussi bien

    dc c'est le passage par la fonction contenue dans le fichier .js qui me pose problème...

    voilà...

    je suis en train de passer par la db (moyen de contourner mon probleme) mais cela ne m'enchante pas. Va faalloir coder tout de A à Z et puis je sens que je vais rencontrer d'autres diffucultes, alors que là, j'y étais.

    toujours a votre écoute.
    merci
    areuh

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    et là ça te retourne quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var commentez_01_nbre_demi_coups='<?php echo $_commentez_01_nbre_demi_coups; ?>';
    alert( commentez_01_nbre_demi_coups);
    ss+='---'+commentez_01_nbre_demi_coups;
    alert(ss)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Le passage dans le fichier JS... Le fichier JS est chargé en début de page ? Est-ce que vous n'essayez pas d'utiliser des variables qui n'existent pas encore ? Je veux dire: est-ce que l'ordre des instructions est correcte ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut
    SpaceFrog

    ok j'explique (c'est pas simple, j'ai pas tout colle)

    ton 1° alert s'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_commentez_01_nbre_demi_coups; ?>
    je fais passer
    ton 2° alert affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <hr>[1]<br>[2]<br>[3]<br>[4]<br>[5]<br>[6]<br>[7]<br>[8]<br>[9]<br>[10]<br>[11]<br>[12]<br><br><hr>1. <a href="javascript:SetMove{{1,0,'g1'}}" name="m1v0">   <b>e4</b>---<?php echo $_commentez_01_nbre_demi_coups; ?>
    je fais passer
    ton 1° alert s'affiche 1 deuxieme fois (c'est le meme):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_commentez_01_nbre_demi_coups; ?>
    ton 2° alert s'affiche 1 deuxième fois (mais il est concatene avec la precedente valeur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <hr>[1]<br>[2]<br>[3]<br>[4]<br>[5]<br>[6]<br>[7]<br>[8]<br>[9]<br>[10]<br>[11]<br>[12]<br><br><hr>1. <a href="javascript:SetMove{{1,0,'g1'}}" name="m1v0">   <b>e4</b>---<?php echo $_commentez_01_nbre_demi_coups; ?> <a href="javascript:SetMove{{2,0,'g1'}}" name="m2v0">   <b>e5</b>---<?php echo $_commentez_01_nbre_demi_coups; ?>
    etc etc... j'ai pas compté mais la partie (partie d'échecs) que j'affiche contient 51 1/2 coups, dc j'imagine qu'il doit m'afficher tes alert 51 fois

    ok, je décortique ton 2° alert
    <hr>[1]<br>[2]<br>[3]<br>[4]<br>[5]<br>[6]<br>[7]<br>[8]<br>[9]<br>[10]<br>[11]<br>[12]<br><br><hr>
    des balises (pour l'affichage HTML)
    les chiffres entre [] indique les TAGS (infos sur la partie), il y en a bien 12
    Ensuite pour chaque 1/2 coup il appel une fonction (que je n'ai pas rédigé) qui est contenue dans la page .php et qui formate (en lien hypertexte et autre "feature" de l'echiquier)

    un truc que je n'ai pas essaye, j'y remédie:
    - essayer de passer une autre variable (j'y crois pas)
    - essayer de passer la variable ds la première partie de ss (au début du lien hypertexte)

    voila voila...
    a+
    merci
    areuh

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    heu si l'alerte affiche texto:
    <?php echo $_commentez_01_nbre_demi_coups; ?>
    c'est que php n'est pas interpété !!!!! ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut
    Vermine,

    desole j'ai pas lu ton précédent post:

    hum possible... le structure du site est... compilquée (en ce qui me concerne)

    site en pseudo-frames
    dans la <div> principale, d'autres <div>
    <div_gauche> contient une iframe avec l'échiquier (c'est celle-là qui appelle le fichier .js)
    <div_droite> affiche la liste des 1/2 coups

    je vais voir en plaçant <div_gauche> tout à la fin de la page .php

    a+
    areuh

  14. #14
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Peu importe où est appelé le code, ce qui importe c'est où il est défini. Lors du parsing Javascript, les valeurs PhP vont être mise à plat et ne changeront plus. Il faut donc qu'elles existent bien avant cela.

    Et effectivement, la remarque de SpaceFrog est pertinente. Il est possible que la syntaxe soit sensible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //quotes
    var commentez_01_nbre_demi_coups='<?php echo $_commentez_01_nbre_demi_coups; ?>';
     
    //double quotes
    var commentez_01_nbre_demi_coups="<?php echo $_commentez_01_nbre_demi_coups; ?>";
     
    //rien
    var commentez_01_nbre_demi_coups=<?php echo $_commentez_01_nbre_demi_coups; ?>;

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut
    Les différentes syntaxes ne donnent aucun résultat.

    j'essaye une dernière chose:
    passer les variables php dans l'iframe de l'échiquier puisque c'est cette iframe qui appelle le fichier .js
    Si je n'y arrive toujours pas, j'essaierai de passer par les base de données (sic).

    Merci pour vos réponses.
    a+
    areuh

  16. #16
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Ah oui, juste, l'iframe.
    Il faut effectivement à mon avis repasser les variables en get à l'iframe.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 76
    Par défaut
    hop,

    des nouvelles...
    je suis passé par PHP uniquement. C'etait bien trop compliqué pour moi de passer (d'essayer) les variables par l'iframe de l'échiquier...

    l'adresse de l'autre topic est sur le forum php:
    http://www.developpez.net/forums/d95...-ca-meme-page/

    je ne mets pas de [RESOLU] puisque ça n'est pas le cas.

    en tout cas merci d'avoir pris le temps de me répondre.
    a+
    areuh

  18. #18
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    pour ma part je ne génère jamais de js en php

    deux cas se présente soit les données à passer sont dispos lors de la génération de la page par le php et dans ce cas je mets dans ma page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
     myDatas=<?php echo json_encode($myDatas); ?>;
    </script>
    myDatas étant un tableau associatif contenant toutes les donnes à passer à javascript.

    soit les données dépendent des actions dans la page de l'utilisateur donc du javascript exécuté et dans ce cas je passe par XMLHttpRequest
    le XHR appèlle une url php qui ne fait que retourner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo json_encode($myDatas); ?>;
    et le handler du xhr lui prends le json est le place dans une variable.

    dans les deux cas le javascript pour axéder à une valeur passe par
    myDatas.myItem

    A+JYT

    A+JYT

Discussions similaires

  1. Récupération de variable entre php et javascript
    Par pbury58 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/06/2015, 19h30
  2. transmission variable(s) php vers javascript
    Par Didier100 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/12/2009, 15h00
  3. passage de variable de php a javascript
    Par the-destroyer dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/11/2009, 17h00
  4. [PHP 5.2] [PHP-JS] Passage de variable entre PHP et JavaScript
    Par Claude Poulin dans le forum Langage
    Réponses: 5
    Dernier message: 27/04/2009, 17h28
  5. Réponses: 8
    Dernier message: 27/06/2006, 11h47

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