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 :

Port�e des variables PHP dans Javascript


Sujet :

JavaScript

  1. #1
    Expert �minent
    Avatar de CinePhil
    Homme Profil pro
    Ing�nieur d'�tudes en informatique
    Inscrit en
    Ao�t 2006
    Messages
    16 818
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par d�faut Port�e des variables PHP dans Javascript
    Bonjour,
    Je travaille un peu sur un projet commenc� par d'autres et je suis � peu pr�s noob en Javascript. D�sol� si mes questions sont basiques mais apr�s recherche sur le forum et parcours de quelques messages, rien ne m'a guid�.

    Grosso modo, je reprends du code qui m�lange du PHP, du CSS, du HTML et du Javascript, tout en faisant quand m�me appel � des fichiers CSS et JS.

    J'ai voulu r�organiser un peu tout �a en isolant tout le CSS et tout le Javascript dans des fichiers .css et .js.

    Le probl�me est que certaines portions de code Javascript utilisent des variables PHP.

    Apr�s moult essais et pas mal de recherches sur le net, il semble impossible d'externaliser dans un fichier Javascript les fonctions Javascript utilisant du code PHP afin que le code Javascript n'apparaisse pas dans le code source de la page HTML (je trouve �a moche !).

    Vrai ou faux ?
    Philippe Lem�nager. Ing�nieur d'�tude � l'�cole Nationale Sup�rieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur � l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les m�mes sujets.
    � Ce que l'on con�oit bien s'�nonce clairement, et les mots pour le dire arrivent ais�ment �. (Nicolas Boileau)
    � la maison comme au bureau, j'utilise la suite Linux Mage�a !

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    D�tails du profil
    Informations personnelles :
    �ge : 53
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Par d�faut
    si c'est un fichier .js, par d�faut, ton serveur web ne le passera pas � php et le servira, tel quel, non interpr�t�..

    Tu peux configurer ton serveur web pour ex�cuter php aussi sur les .js, mais �a risque d��tre un peu lourd..

    Par contre tu peux tester en appelant ton fichier
    "scripts.js.php" et l�appeler dans ton html comme un fichier js externe normal
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <script type="text/javascript" src="/js/scripts.js.php"></script>
    ca devrait marcher.. Peut-�tre auras tu besoin de rajouter un header appropri� pour que le script php soit bien reconnu comme js :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    header("content-type: application/x-javascript");
    Encore que normalement, vu que tu pr�cise le type dans ton appel, ca ne devrait pas �tre n�cessaire..

    A tester !

  3. #3
    Expert �minent
    Avatar de CinePhil
    Homme Profil pro
    Ing�nieur d'�tudes en informatique
    Inscrit en
    Ao�t 2006
    Messages
    16 818
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par d�faut
    J'ai essay� ce genre de manip mais rien n'y fait.
    Je vais simplement s�parer le code dans des fichiers ;js mais les appeler par require dans le PHP pour qu'ils soient int�gr�s � la page g�n�r�e par PHP et qu'ils b�n�ficient des variables PHP comme actuellement.
    Ce sera d�j� mieux que d'avoir tout m�lang� dans le m�me fichier.

    Merci de ta r�ponse.
    Philippe Lem�nager. Ing�nieur d'�tude � l'�cole Nationale Sup�rieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur � l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les m�mes sujets.
    � Ce que l'on con�oit bien s'�nonce clairement, et les mots pour le dire arrivent ais�ment �. (Nicolas Boileau)
    � la maison comme au bureau, j'utilise la suite Linux Mage�a !

  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
    J'ai essay� ce genre de manip mais rien n'y fait.
    Pourtant �a fonctionne parfaitement ...

    soit mettre le fichier css ou js avec une extension .php
    - et mettre le src des balises avec l'extension .php
    - ou faire un rewrite rule poru que les .css pointent sur des .php



    soit indiquer au serveur d'interpr�ter les fichiers .css et .js avec php

    Ce sont des techinques �prouv�es ...
    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
    Expert �minent
    Avatar de CinePhil
    Homme Profil pro
    Ing�nieur d'�tudes en informatique
    Inscrit en
    Ao�t 2006
    Messages
    16 818
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par d�faut
    �a a fonctionn� pour le CSS mais pas pour le Javascript alors je change de strat�gie pour le JS
    Philippe Lem�nager. Ing�nieur d'�tude � l'�cole Nationale Sup�rieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur � l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les m�mes sujets.
    � Ce que l'on con�oit bien s'�nonce clairement, et les mots pour le dire arrivent ais�ment �. (Nicolas Boileau)
    � la maison comme au bureau, j'utilise la suite Linux Mage�a !

  6. #6
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    D�cembre 2010
    Messages
    1 009
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : sans emploi

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 1 009
    Par d�faut
    Citation Envoy� par CinePhil Voir le message
    �a a fonctionn� pour le CSS mais pas pour le Javascript alors je change de strat�gie pour le JS
    Qu'entends-tu par �a ne fonctionne pas en js ? Tu n'as pas les variables php ou tu n'as pas de fichier du tout ?

    Perso en header je met juste �a :
    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <?php
    header("Content-type: text/javascript");
    ?>
     
    //mon code javascript ici

    Et dans ma page html, rien de plus qu'avant sauf que ma balise script a pour source la page php.

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <script type="text/javascript" src="http://www.monsite.com/monscript.php" ></script>


    edit: sinon je me souviens qu'� l'�poque ou j'utilisais des hebergeurs gratuits, l'un d'eux plantait mes fichiers externes ".php" car il rajoutait des balises html pour faire des stats.

  7. #7
    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
    css javascript les deux fonctionnent
    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 !

  8. #8
    Membre r�gulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par d�faut
    Une solution pour faire tourner du php dans le js, � noter dans le htaccess.

    Run PHP inside JavaScript files
    When coding in JavaScript, it can very useful to be able to use PHP inside the .js files, for example for retrieving data from your database. Here is a snippet to allow the use of PHP inside .js files.

    AddType application/x-httpd-php .js
    AddHandler x-httpd-php5 .js

    <FilesMatch "\.(js|php)$">
    SetHandler application/x-httpd-php
    </FilesMatch>
    Source: http://www.kavoir.com/2010/07/how-to...ipt-files.html

  9. #9
    Expert �minent
    Avatar de CinePhil
    Homme Profil pro
    Ing�nieur d'�tudes en informatique
    Inscrit en
    Ao�t 2006
    Messages
    16 818
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par d�faut
    Merci pour le lien snypi.
    Si je comprends bien ceci :
    Another solution for this is to make your server parse all files ending in .js. Just create a .htaccess if it doesn�t exist in the directory in which you wish to include and run PHP code inside all .js files.
    Il faut mettre le .htaccess avec le code donn� dans le r�pertoire contenant les .js ?

    EDIT :
    Je viens de faire un test, avec tous les fichiers dans le m�me r�pertoire pour simplifier :

    .htaccess :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    AddType application/x-httpd-php .css
     
    AddType application/x-httpd-php .js
    AddHandler x-httpd-php5 .js
     
    <FilesMatch "\.(js|php)$">
    SetHandler application/x-httpd-php
    </FilesMatch>
    styles.css :
    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
    <?php
    header( 'Content-type: text/css');
    session_start();
    ?>
    body {
    	background: <?php echo $_SESSION['bg']['body']; ?>;
    	font-style: normal;
    }
    #container {
    	background: <?php echo $_SESSION['bg']['container']; ?>;
    	color: <?php echo $_SESSION['txt']['police']; ?>;
    	border: 10px solid <?php echo $_SESSION['txt']['border']; ?>;
    }
     
    #texte
    {
    	font-style: <?php echo $style_texte; ?>;
    }
    test.js :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    header("Content-type: application/x-javascript");
    session_start();
    ?>
     
    function afficherVariable()
    {
    	var varsess = '<? echo $_SESSION["variable_session"]; ?>';
    	var variable = '<php echo $une_variable; ?>';
     
    	alert(varsess + ' : ' + variable);
    }
    index.php :
    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
    <?php
    session_start();
    $_SESSION['bg']['body'] = 'blue';
    $_SESSION['bg']['container'] = 'yellow';
    $_SESSION['txt']['police'] = 'red';
    $_SESSION['txt']['border'] = 'green';
    $_SESSION["variable_session"] = 'ma variable session';
    $style_text = 'italic';
    $une_variable = 'une valeur';
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>Test</title>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<link rel="stylesheet" href="styles.css" type="text/css" media="screen" />
    	<script type="application/x-javascript" src="test.js" charset="utf-8"></script>
    </head>
    <body>
    	<div id="container"><span id="texte">Bonjour</span><br />
    		<a href=javascript:afficherVariable()>Afficher les variables</a>
    	</div>
    </body>
    </html>
    Voici le r�sultat :


    => La variable session est r�cup�r�e mais pas la variable ordinaire, pour le CSS comme pour le Javascript.
    Images attach�es Images attach�es  
    Philippe Lem�nager. Ing�nieur d'�tude � l'�cole Nationale Sup�rieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur � l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les m�mes sujets.
    � Ce que l'on con�oit bien s'�nonce clairement, et les mots pour le dire arrivent ais�ment �. (Nicolas Boileau)
    � la maison comme au bureau, j'utilise la suite Linux Mage�a !

  10. #10
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    D�cembre 2010
    Messages
    1 009
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activit� : sans emploi

    Informations forums :
    Inscription : D�cembre 2010
    Messages : 1 009
    Par d�faut
    bon et ma(notre) solution alors ? (juste en renomant tes fichiers .js en .php).


    le fichier ne fonctionne plus du tout ? ou uniquement tes variables qui ne fonctionnent pas ? as-tu un message d'erreur dans la console ?

    as-tu bien mis le header php content-type "text/javascript" ?

  11. #11
    Membre r�gulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par d�faut
    mille excuse au lieu de mettre "une solution" j'aurais du �crire " une piste"

    quand je regarde la configuration de ta r�organisation effectivement j'opterai pour un fichier js.php pour regrouper les code js.
    et si pas trop de variable css � modifier je les mettrais dans une balise style du index.php

  12. #12
    Expert �minent
    Avatar de CinePhil
    Homme Profil pro
    Ing�nieur d'�tudes en informatique
    Inscrit en
    Ao�t 2006
    Messages
    16 818
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par d�faut
    Bon ben dans ce cas je reste sur la solution que j'ai adopt�e :
    S�paration du code Javascript dans des fichiers .js et require du fichier .js dans le programme PHP.

    On va dire que c'est r�solu, m�me si �a ne me satisfait qu'� moiti�.

    Merci � tous.
    Philippe Lem�nager. Ing�nieur d'�tude � l'�cole Nationale Sup�rieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur � l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les m�mes sujets.
    � Ce que l'on con�oit bien s'�nonce clairement, et les mots pour le dire arrivent ais�ment �. (Nicolas Boileau)
    � la maison comme au bureau, j'utilise la suite Linux Mage�a !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 15/04/2008, 18h36
  2. [PHP-JS] des variables PHP dans un script Javascript
    Par jiojioforever dans le forum Langage
    R�ponses: 13
    Dernier message: 25/01/2007, 15h24
  3. [PHP-JS] Soucis variable php dans javascript.
    Par cisse18 dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 13/07/2006, 10h47
  4. [PHP-JS] Test des variables (PHP ou JavaScript) ??
    Par King_T dans le forum Langage
    R�ponses: 5
    Dernier message: 23/05/2006, 12h19
  5. port�e des variables globales dans un fichier js
    Par crakazoid dans le forum G�n�ral JavaScript
    R�ponses: 19
    Dernier message: 14/04/2006, 16h49

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