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 :

Utiliser dans JavaScript une variable PHP


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut Utiliser dans JavaScript une variable PHP
    Bonjour.
    J'ai voulu utiliser une variable PHP dans mon script JS. J'ai alors utilisé un code semblable à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var ma_var_JS =parseInt('<?php echo $ma_var_PHP; ?>') ;
    Pour vérifier si j'ai bien récupéré le contenu de ma variable PHP, j'ai ajouté cette ligne :
    Cette ligne m'a affiché "NaN". Le résultat obtenu n'est donc pas celui attendu.
    Pour faciliter le test, j'ai utilisé une constante (la valeur 100) au lieu d'une variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var ma_var_JS =parseInt('<?php echo "100"; ?>');
    alert(ma_var_JS);
    Le résultat obtenu est le même (toujours NaN).
    Pour voir ce qui se cache derrière ce NaN, j'ai enlevé le parseInt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var ma_var_JS ='<?php echo 100; ?>';
    alert(ma_var_JS);
    Le résultat obtenu est ceci:
    <?php echo "100"; ?> et non pas la valeur 100.

    Voyez-vous où est l'erreur et ce qu'il faut modifier pour y remédier ?
    En vous remerciant.

  2. #2
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    il semblerait que ton code php ne soit pas interprété ...

    peux tu nous montrer le code source généré ?
    => affichage source
    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 !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    Bonjour.
    Oui, il me semble aussi que la balise php n'est pas interprétée en tant que du PHP. Je me suis dit alors que j'ai peut être oublié un ' ou " mais apparemment non.
    Je ne peux pas avoir accès au code source généré à partir du clic-droit-> voir code source, car mes instruction n'y apparaissent pas. Elles sont dans un long fichier JS à part.
    Actuellement, je ne suis pas devant la machine concernée. Je vais essayer, ce soir ou demain, d'ajouter les lignes citées dans le post ci-dessus au code de la page d'accueil et voir ce qui va se passer.
    Je vais créer un bloc JS dans lequel je mettrai le bloc php ci-dessus.
    Cordialement.

  4. #4
    Membre éprouvé
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Par défaut
    J'ai peut être mal compris le contexte mais le code PHP est interprété par le serveur avant l'envoi des pages au navigateur. Le javascript est interprété par le navigateur après qu'il ait reçu ces pages.
    Donc ce que tu veux faire n'est pas possible.

  5. #5
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ma_var_JS ='<?php echo 100; ?>';
    alert(ma_var_JS);
    est tout à fait possible !!!

    le tout est de le mettre sur un page php et d'appeler la page en passant par l'url du serveur
    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 !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 29
    Par défaut
    Bonsoir,

    J'ai eu le même problème il y'a 2 jours,
    J'ai réglé le pb en renommant Mapage.html en Mapage.php

    C'était tout bête.

  7. #7
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Citation Envoyé par liloulinx Voir le message
    Je ne peux pas avoir accès au code source généré à partir du clic-droit-> voir code source, car mes instruction n'y apparaissent pas. Elles sont dans un long fichier JS à part.
    Et alors ? Ton script est bien appelé quelque-part dans ta page, donc tu peux le retrouver. De toute manière la partie qui nous intéresse est celle dans ton fichier PHP, directement visible dans le code source donc.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ma_var_JS ='<?php echo 100; ?>';
    alert(ma_var_JS);
    est tout à fait possible !!!

    le tout est de le mettre sur un page php et d'appeler la page en passant par l'url du serveur
    Bonjour.
    Comme je vous l'ai dit: Quand je tape votre code, ça marche, mais dès que je change la valeur 100 par $ma_variable_php, là ça plante (bloque) !!!
    J'ai vérifié, la variable existe juste au dessus dans le même fichier appelé index.php.
    Toutefois, quand je redéclare ma_variable_php dans le bloc php ça marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var ma_var_JS ='<?php $ma_var_php=1234; echo $ma_var_php; ?>';
    alert(ma_var_JS);
    Le problème a-t-il alors un lien avec l'export de la variable du programme principal (ma_variable_php) vers le sous-code php ?

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    c'est sans toute un souci de hierarchie de quotes, je suppose que ton code est englobé dans un bloc php ?
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    Non, il n'est pas englobé dans un bloc php.
    J'ai fais 2 tests:
    1. Le 1er test est fait sur le fichier qui contient mes fonctions javaScript. Celui-ci, ne contient pas du tout de balise <?php ... ?>.
    2. Le 2nd test est fait directement dans le fichier index.php. Celui-ci n'est pas entouré d'une balise php globale, car initialement était un fichier html, puis évolué vers un fichier php. Je lui ai alors intégré plusieurs blocs php, éparpillés un peu partout selon les besoins. Mes tests, je les ai fait en dehors d'une balise php. J'ai créé une balise <script> puis dans celle-ci j'ai imbriqué une sous-balise <?php ... ?>.

    PS: La variable en question est déclarée dans le fichier index.php.

  11. #11
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    On ne va pas tourner en rond pendant des heures... Affiche le code source de la page depuis le navigateur et regarde si ta variable PHP est correctement récupérée dans le code Javascript. Si ce n'est pas le cas, alors c'est une erreur PHP et tu te trouves dans le mauvais forum.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    Citation Envoyé par SylvainPV Voir le message
    On ne va pas tourner en rond pendant des heures... Affiche le code source de la page depuis le navigateur et regarde si ta variable PHP est correctement récupérée dans le code Javascript. Si ce n'est pas le cas, alors c'est une erreur PHP et tu te trouves dans le mauvais forum.
    Bonjour.
    Je vous ai dit plus haut que dans le code source on y trouve rien. Voilà un extrait de ce qui s'affiche dans le code source :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="div_test"></div>
    Avec FireBug, c'est différent !!!. J'ai ça:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="div_test">NaN</div>
    Voici les modif que j'ai faites:
    - dans le fichier index.php, j'ai créé ce div :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="div_test"></div>
    - dans le fichier JS, j'ai ajouté ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var temps_restant =parseInt('<? echo $tps_restant; ?>') ;
    document.getElementById('div_test').innerHTML=temps_restant;
    Sinon, OK, je vais reposter mon message dans le forum php.

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    dans le fichier JS, j'ai ajouté ces lignes
    Ah ben voilà...
    Tu crois que JavaScript sais interpréter le PHP et qu'il a connaissance de l'état des variables côté serveur ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Voilà le point essentiel !!! si le code php est dans un fichier js externe avec une extension .js , et que le serveur n'est pas paramètré pour interpréter les fichier js il est normal que le php ne soit pas interprété ...

    Donc :
    - soit tu renommes ton fichier .js en, .php ( en n'oubliant pas de modifier le src de ta balise script dans ta page html)

    - soit tu paramètres le serveur de sorte qu'il interprète les fichier .js
    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 !

  15. #15
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui... mais non Spaffy.

    S'il s'agit d'un fichier JavaScript externe, il sera appelé par la page HTML et n'aura donc pas accès au contexte PHP qui a généré ladite page, donc la variable n'existera pas...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  16. #16
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    sisi Beef !!!

    nomme ton fichier js avec une extension php et le php inclus sera interprété

    mets une directive apache pour que le serveur interprète les fichiers js et le php sera interpré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 !

  17. #17
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Attention, je ne dis pas qu'il n'est pas possible de générer un fichier JS côté serveur, je dis juste que si ta page PHP (page.php par exemple) génère un script du type
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="script.php"></script>
    dans ce cas, script.php n'aura pas accès au contexte de page.php puisque celui-ci a disparu après l'envoi de la page au navigateur !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  18. #18
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    oui bien entendu les contextes sont séparés pour ce qui concerne les variables php.
    Il faudra soit passer par des variables de session ou passer les variables en get dans l'url du src.

    autre possibilité, faire un include du fichier, qui ne sera alors plus "externe" mais sera dans le même contexte que la page html
    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 !

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/05/2012, 06h55
  2. Créer depuis un javascript une variable PHP ?
    Par Ti Jen-tsie dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/04/2010, 15h56
  3. Réponses: 7
    Dernier message: 05/01/2008, 19h37
  4. [PHP-JS] utiliser une variable php dans du javascript
    Par kcizth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/02/2006, 11h53
  5. Affecter une variable javascript à une variable php
    Par gwendy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 20h58

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