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 :

Envoyer dans le script JS la valeur d'une variable php


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2012
    Messages
    53
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par d�faut Envoyer dans le script JS la valeur d'une variable php
    Bonjour,

    Sur mon site, j'utilise le systeme de social login de Janrain.
    Donc, l'utilisateur clic sur un bouton et cela ouvre le pop up permettant d'afficher la connexion au site.
    Voici le code javascript que j'ai dans mon <head> </head>

    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
     
    <script type="text/javascript">
    (function() {
        if (typeof window.janrain !== 'object') window.janrain = {};
        if (typeof window.janrain.settings !== 'object') window.janrain.settings = {};
     
     
        janrain.settings.tokenUrl = 'http://localhost:8888/write_advise.php?id=<?php echo $id; ?>';
     
        function isReady() { janrain.ready = true; };
        if (document.addEventListener) {
          document.addEventListener("DOMContentLoaded", isReady, false);
        } else {
          window.attachEvent('onload', isReady);
        }
     
        var e = document.createElement('script');
        e.type = 'text/javascript';
        e.id = 'janrainAuthWidget';
     
        if (document.location.protocol === 'https:') {
          e.src = 'https://rpxnow.com/js/lib/ratemywork/engage.js';
        } else {
          e.src = 'http://widget-cdn.rpxnow.com/js/lib/ratemywork/engage.js';
        }
     
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(e, s);
    })();
    </script>
    Dans mon <body> j'ai ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <a href="write_advise.php?id=<?php echo $id; ?>"  class="janrainEngage" >
    Mon probleme est le suivant: dans le code JS, il y a : janrain.settings.tokenUrl = 'http://localhost:8888/write_advise.php?id=<?php echo $id; ?>';

    cela fonctionne sans probl�me, ma page write_advise s'ouvre bien mais le id est vide.

    Ma question est donc: comment faire pour que le lien present dans le JS soit complet et contienne donc la valeur de $id

    D'avance merci

    Mickael

  2. #2
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    C'est un probl�me classique. PHP et JavaScript ne � vivent � pas au m�me moment.

    Il faut bien comprendre que PHP tourne c�t� serveur, et JavaScript c�t� client. PHP ne sait g�n�rer que du texte et l'envoyer au client via HTTP. HTML et JavaScript, tout �a c'est juste du texte pour PHP. Ce n'est que lorsque �a arrive au navigateur que �a prend un sens.

    De son c�t�, le navigateur re�oit des donn�es texte qu'il interpr�te comme HTML et JavaScript. Une fois qu'il a tout re�u, il ferme sa connexion au serveur et le processus PHP sur le serveur s'arr�te. Il n'a alors plus aucune chance de conna�tre une variable du serveur � moins de rouvrir la connexion et relancer le processus serveur (ce qui peut se faire par exemple avec Ajax).

    La solution la plus simple est d'envoyer la variable au m�me moment que tout le reste. Pour �a, ton serveur doit g�n�rer une ligne de code JavaScript d�clarant la variable.

    Code PHP : S�lectionner tout - Visualiser dans une fen�tre � part
    echo "<script>var advise_id = $id</script>";

    Si par exemple $id contient la valeur 42, une fois interpr�t�e et envoy�e, cette ligne de code devient :
    Code HTML : S�lectionner tout - Visualiser dans une fen�tre � part
    <script>var advise_id = 42;</script>

    Ensuite, il te faudra juste modifier un peu ton JS pour que tokenUrl re�oive la bonne valeur.
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

  3. #3
    Membre averti
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2012
    Messages
    53
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par d�faut passer une variable php en javascript
    Bonjour,

    Merci pour ta r�ponse.
    J'ai essaye mais j'ai encore quelques soucis.

    J'ai bien ajoute le code dans la version php et cela fonctionne
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    echo "<script>var advise_id = $id; document.write(advise_id);</script>";
    affiche bien le contenu de $id

    Maintenant ou cela se complique, c'est pour le passage dans la partie script dans le head. Si avant le debut de la fonction, je fais un document.write(advise_id), rien ne s'affiche. Donc j'en deduis que la valeur de ma variable n'arrive pas jusque la.
    Pour info, ma variable $id vient de $id=$_GET[id]
    Pourriez vous m'aider ?

    Merci beaucoup

    Mickael

  4. #4
    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
    Comme d'hab
    LISEZ LA FAQ ET LA SECTION CONTRIBUEZ
    http://www.developpez.net/forums/d10...cript-methode/

    A+JYT

  5. #5
    Membre averti
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2012
    Messages
    53
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par d�faut passage variable vers JS
    Bonjour,

    Merci pour le lien
    J'ai essaye
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    $script = Array(
    	'id' => $id
    	);

    Si je fais un echo $script[id] il affiche bien l'id en question

    Dans la balise head, j'ai mis:
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    scriptData = <?php echo json_encode($script); ?>;

    Si je fais document.write(scriptData), il affiche la null

    Je ne comprends h�las pas pourquoi

    Merci

    Mickael

  6. #6
    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
    document.write est � bannir

    console.log ou alert mais pas document.write

    peut-on voir le source de ton navigateur ?
    A+JYT

  7. #7
    Membre averti
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2012
    Messages
    53
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par d�faut passer une variable php en javascript
    J'ai utilise alert et il affiche aussi null

    Si j'affiche le code source de ma page depuis Safari j'ai ceci

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    <script type="text/javascript">
    scriptData = null;
    Mais je viens de me rendre compte que je me complique la vie pour rien. Commme mon $id vient d'un $_GET, je peux l'extraire de l'URL via
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    var url = window.location.search;
      alert(url.substring(url.lastIndexOf("=")+1));
    Mickael

  8. #8
    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
    tu as un pb dans ton php
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    json_encode($script);
    te retourne null;

    ce n'est donc pas un pb JS

    A+JYT

  9. #9
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    C'est plus simpe en effet
    Mais attention, s'il y a d'autres param�tres GET, ton substring ne marche plus. Il peut arriver que le navigateur ajoute des param�tres � l'URL, par exemple si l'utilisateur passe par un proxy web. Dans le doute, il vaut mieux se prot�ger, surtout quand c'est facile � faire.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    console.log(location.search.match(/[?&]id=([^&#]+)/));
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

Discussions similaires

  1. Affichage de la valeur d'une variable php dans un code javascript
    Par hastiok dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 08/12/2009, 12h59
  2. R�ponses: 2
    Dernier message: 17/06/2009, 23h00
  3. [Spip] R�cup�rer la valeur d'une variable PHP dans une boucle Spip
    Par papisdoums dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 1
    Dernier message: 10/04/2009, 19h03
  4. [PHP 5.0] R�cup�rer la valeur d'une variable php dans du code javascript
    Par HF974 dans le forum Langage
    R�ponses: 4
    Dernier message: 08/03/2009, 11h46
  5. R�ponses: 1
    Dernier message: 23/04/2007, 13h22

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