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

Langage PHP Discussion :

Intégrer des variables PHP dans un script JS


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2021
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 266
    Points : 21
    Points
    21
    Par défaut Intégrer des variables PHP dans un script JS
    Bonjour, je me suis inspiré des éléments trouvé dans une discussion pour essayer d'intégrer des variables issues d'un PHP (qui lui même va le récupérer d'une formulaire) et les intégrer dans un javascript.

    En gros, pour le moment, j'en suis à la phase test.
    Côté du fichier test.PHP j'ai qqchose du genre (je mets pas tout le code, juste celui qui me pose problème, sinon ça devient illisible)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $message = "msg à passer";
    ?>
    <script src="osm_carte_v5.js"></script>
    Et dans le javascript
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var msg='<?PHP echo $message;?>';
     alert(msg);

    Et, comme l'un des répondant de l'époque, j'obtiens comme résultat <?PHP echo $message;?> au lieu de msg à passer.

    Il doit me manquer qqchose.

    Pourtant le fichier que j'appelle est bien un PHP.

    Ou alors est-ce que l'appel de JS devrait être à l'intérieur des balises PHP ?

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 175
    Points
    17 175
    Par défaut
    Salut

    var msg='<?PHP echo $message;?>';
    var msg=<?PHP echo $message;?>; me semble t il
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2021
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 266
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut

    var msg='<?PHP echo $message;?>';
    var msg=<?PHP echo $message;?>; me semble t il
    Oh non, ça semblait une solution tellement simple !

    Mais ça n'a pas fonctionné chez moi (ça bloque le script, la age ne s'affiche pas).

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Si si il faut bien des ' pour délimiter la chaîne JS.

    Par contre tu ne peux pas exécuter de PHP dans un fichier .js, donc normal que le code ne soit pas interprété.

    Il faut revoir où tu intègres ta data.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2021
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 266
    Points : 21
    Points
    21
    Par défaut
    Au passage, j'ai aussi testé d'intégrer l'appel JS dans le PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $message = "2" ;
    echo '<script src="osm_carte_v5.js"></script>';
    ?>
    Mais ça ne marche pas non plus.

    Du coup comment vous feriez pour que le JS récupère les variables du PHP ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2021
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 266
    Points : 21
    Points
    21
    Par défaut
    Je précise que les données à exploiter sont dans un fichier xml.
    Peut-être que JS saurait les en extraire ?

    Pour l'instant je ne sais faire ça qu'avec le PHP donc j'ai voulu me raccrocher à ce que je savais faire…

  7. #7
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Oublie XML et passe par JSON. Pour échanger de la data c'est bien plus efficace et simple à manipuler.

    En JS, tu peux utiliser fetch() pour récupérer ton fichier de données.

    Le fichier de données peut être dynamique et généré à la volée et au besoin par PHP.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  8. #8
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2021
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 266
    Points : 21
    Points
    21
    Par défaut
    Tu surestimes mon niveau en programmation !
    J'ai déjà passé des heures avant de parvenir à écrire de façon ciblée dans le xml avec PHP, j'ai enfin une base de code qui fonctionne à peu près.
    Tout reprendre de zéro pour passer au JSON, ça va me tuer !
    C'est juste un « petit » exercice pour un cours de sensibilisation à la prog.

    JE me demande si les instructions vues dans cette discussion https://www.developpez.net/forums/d1...cript-methode/ pourraient être une piste.

    Mais déjà, quand dans son code php il utilise un 'user' => get_object_vars($mySqlQueryResult) dont je vois qu'il le rappelle ensuite dans le JS avec un alert('user name : ' + scriptData.user.name), ça va trop loin pour moi. J'aurai préféré qu'il récupère juste le « message » qui est plus évident pour moi. Pfouuu

  9. #9
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2021
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 266
    Points : 21
    Points
    21
    Par défaut
    Re hello,

    pour le moment, ce que je constate, c'est que si je mets le script à l'intérieur du fichier php (plutôt que dans un fichier JS que j'appelle, ce qui est en principe la bonne façon de faire), alors les variables PHP sont bien prises en compte.
    Pour le moment je vais déjà avancer de cette façon. (oui, c'est pas bien, mais ça me permet d'avancer et de comprendre. Je ne fais pas un site, juste un exercice.)
    Et plus tard, peut-être que j'essaierai d'aller plus loin.
    Genre en mettant les données dans un mySQL plutôt que dans du xml (puisque mySQL devrait être la prochaine leçon de code que nous aurons, si j'ai bien compris).

  10. #10
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    Citation Envoyé par LoicBahuEtu Voir le message
    JE me demande si les instructions vues dans cette discussion https://www.developpez.net/forums/d1...cript-methode/ pourraient être une piste.
    C'est exactement ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $message = "msg à passer";
    ?>
    <script>const msg = <?php echo json_encode($message); ?></script> <!-- SANS '....' -->
     
    <script src="script.js"></script>
    et script.js :

  11. #11
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Décembre 2021
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Décembre 2021
    Messages : 266
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    C'est exactement ça !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $message = "msg à passer";
    ?>
    <script>const msg = <?php echo json_encode($message); ?></script> <!-- SANS '....' -->
     
    <script src="script.js"></script>
    et script.js :
    Ça a l'air très simple à utiliser, ça.

    Et je peux donc envoyer, dans le même php, plusieurs variables, genre
    <script>const msg1 = code du message 1 …
    <script>const msg2 = code du message 2 …
    etc

    et dans le js les rattraper tous avec
    console.log(msg1);
    console.log(msg2); ?

    (il va falloir que je trouve comment utiliser console mais c'est encore une autre histoire).

    Et sinon, à quoi sert le commentaire html <!-- SANS '....' --> ?

  12. #12
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    1-
    à quoi sert le commentaire html <!-- SANS '....' --> ?
    Les guillemets JS sont inutiles puisqu’on crée avec json_encode() une donnée "compatible JS".

    SINON, on peut écrire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>const msg = '<?php echo $message; ?>';</script> <!-- AVEC '....' -->
    MAIS là, il ne faut pas que $message contienne de guillemet !
    • ex. : $message = "c'est l'été"; générera une erreur JS.
    • D'où l'intérêt de json_encode() !


    2- console.log()
    • alert() ouvre une popup "alerte"
    • console.log() s'affiche dans la "console" du navigateur *


    * Ouvrir l'"Inspecteur" :
    • clavier touche "F12" ou "clic-droit" -> "Inspecter"
    • puis onglet "Console"

Discussions similaires

  1. recuperer des variable javascript dans un script php
    Par bourbita.thameur dans le forum Langage
    Réponses: 4
    Dernier message: 28/05/2009, 19h49
  2. [SQL] insérer des variables php dans une requête sql
    Par lili38 dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 22/06/2007, 16h38
  3. [PHP-JS] des variables PHP dans un script Javascript
    Par jiojioforever dans le forum Langage
    Réponses: 13
    Dernier message: 25/01/2007, 15h24
  4. Récupérer des variables Perl dans un script PHP
    Par barabath dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 01h27
  5. [PHP-JS] Problème de variable PHP dans un script JS
    Par soad029 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2005, 22h17

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