Variable PHP dans Variable Javascript
Résolu/Fermé
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
-
13 sept. 2010 à 14:42
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 14 sept. 2010 à 12:33
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 14 sept. 2010 à 12:33
A voir également:
- Variable PHP dans Variable Javascript
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Variable TEMP ✓ - Forum Windows 10
14 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
13 sept. 2010 à 15:01
13 sept. 2010 à 15:01
Bonjour,
Quelle est l'extension de ton fichier javascript ? Si c'est .js, alors il ne passe pas par l'interpréteur php (par défaut).
Deux solutions : soit modifier ton serveur web (apache ?) pour lui dire d'envoyer les .js à l'interpréteur php ; soit renommer ton fichier en truc.js.php, en modifiant son type MIME pour indiquer au navigateur qu'il s'agit bien d'un fichier javascript.
Pour ça, tu places tout en haut de ton fichier ce bout de code :
Xavier
Quelle est l'extension de ton fichier javascript ? Si c'est .js, alors il ne passe pas par l'interpréteur php (par défaut).
Deux solutions : soit modifier ton serveur web (apache ?) pour lui dire d'envoyer les .js à l'interpréteur php ; soit renommer ton fichier en truc.js.php, en modifiant son type MIME pour indiquer au navigateur qu'il s'agit bien d'un fichier javascript.
Pour ça, tu places tout en haut de ton fichier ce bout de code :
<?php header('Content-Type: text/javascript'); ?>
Xavier
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
13 sept. 2010 à 15:19
13 sept. 2010 à 15:19
entièrement d'accord avec Xavier.
Une autre solution consiste à avoir une page PHP sur laquelle tu passe le nom du paramète à récupérer. La page renvoies simplement la valeur contenue dans la variable.
Ensutie, en javascript (technologie AJAX), tu vas récupérer la valeur de la variable lors de l'execution du script (moins rapide d'execution que de faire un fichier .js.php dont tu changes le type mime), mais peut être que ca présente des avantages...
Une autre solution consiste à avoir une page PHP sur laquelle tu passe le nom du paramète à récupérer. La page renvoies simplement la valeur contenue dans la variable.
Ensutie, en javascript (technologie AJAX), tu vas récupérer la valeur de la variable lors de l'execution du script (moins rapide d'execution que de faire un fichier .js.php dont tu changes le type mime), mais peut être que ca présente des avantages...
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
13 sept. 2010 à 15:36
13 sept. 2010 à 15:36
Je fais un petit ajout pour dire que la technique de l'AJAX peut être utile si la variable va être modifiée en local sur l'ordi du gars et qu'elle doit etre mise à jour dans la session sur le serveur
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
13 sept. 2010 à 15:20
13 sept. 2010 à 15:20
Merci pour ta réponse rapide, en effet c'est un .js.
Je me sert de ce site en localhost mais également en ligne, la première solution est donc plus difficile à concevoir...
La deuxième est plus interessante, je vais tester ce soir pour voir, si tu as d'autres solutions je suis toute ouïe :)
Merci !
Je me sert de ce site en localhost mais également en ligne, la première solution est donc plus difficile à concevoir...
La deuxième est plus interessante, je vais tester ce soir pour voir, si tu as d'autres solutions je suis toute ouïe :)
Merci !
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
13 sept. 2010 à 15:29
13 sept. 2010 à 15:29
Une autre solution, moins élégante et moins puissante, serait d'initialiser la variable dans ton JS, du style : var session = "";
Et, dans le code ta page, qui elle est générée en php, tu mets :
<script type="text/javascript">session = '<php echo $_SESSION['connection']; ?>'; </script>
Pourvu que ce code apparaisse APRÈS l'appel au fichier JS, ta variable sera mise à jour.
C'est sans doute plus simple à mettre en oeuvre, mais c'est moche :p
Xavier
Et, dans le code ta page, qui elle est générée en php, tu mets :
<script type="text/javascript">session = '<php echo $_SESSION['connection']; ?>'; </script>
Pourvu que ce code apparaisse APRÈS l'appel au fichier JS, ta variable sera mise à jour.
C'est sans doute plus simple à mettre en oeuvre, mais c'est moche :p
Xavier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 sept. 2010 à 17:46
13 sept. 2010 à 17:46
une autre solution
si dans ta page tu as un formulaire par exemple, tu passes en php ta valeur de variable dans un champ
<input type="hidden id="session" value="<?php echo $_SESSION['connection']; ?>" />
et dans ta fonction javascript tu viens lire cette valeur par
var session=document.getElementById('session').value;
si dans ta page tu as un formulaire par exemple, tu passes en php ta valeur de variable dans un champ
<input type="hidden id="session" value="<?php echo $_SESSION['connection']; ?>" />
et dans ta fonction javascript tu viens lire cette valeur par
var session=document.getElementById('session').value;
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
13 sept. 2010 à 18:28
13 sept. 2010 à 18:28
Merci à tous pour vos réponses, j'ai gardé la solution de Xavier avec le .js.php qui fonctionne très bien !
Merci encore, bonne soirée !
Merci encore, bonne soirée !
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
13 sept. 2010 à 19:40
13 sept. 2010 à 19:40
Au fait, autre petite question :
J'ai cette ligne de code
Quand je tape sur une page php
Quand j'écrit sur ma page .js.php,
Mais tel que le code est présenté, l'alert ne se lance pas ni ma redirection...
Avez-vous une idée ?
Merci ^^"
J'ai cette ligne de code
function backoffice() { $connectphp=$_SESSION['connection']; var connectjava=$connectphp; alert (connectjava); if(session=="ok") { document.getElementById('backoff').href='back-office.php'; }else{ session_open(); } }
Quand je tape sur une page php
$connectphp=$_SESSION['connection'];et que je fait un echo de la variable
$connectphp, le resultat s'affiche normalement.
Quand j'écrit sur ma page .js.php,
$connectphp=5;et que je fait
alert (connectjava);, ca m'affiche bien une alert avec écrit 5.
Mais tel que le code est présenté, l'alert ne se lance pas ni ma redirection...
Avez-vous une idée ?
Merci ^^"
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
13 sept. 2010 à 20:02
13 sept. 2010 à 20:02
C'est parce que tu mélanges JS et PHP !
Écris plutôt :
Écris plutôt :
function backoffice() { <?php $connectphp=$_SESSION['connection']; ?> var connectjava=<?php echo $connectphp; ?> alert (connectjava); if(session=="ok") { document.getElementById('backoff').href='back-office.php'; }else{ session_open(); } }
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
13 sept. 2010 à 20:42
13 sept. 2010 à 20:42
Ca ne fonctionne pas :s
C'est bizarre car comme ca :
Je vois une alert m'affichant "5" mais en remplaçant
C'est bizarre car comme ca :
function backoffice() { $connectphp=5; var connectjava=$connectphp; alert (connectjava); if(session=="ok") { document.getElementById('backoff').href='back-office.php'; }else{ session_open(); } }
Je vois une alert m'affichant "5" mais en remplaçant
$connectphp=5;par
$connectphp=$_SESSION['connection'];, pas d'alert et pas de redirection...
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
14 sept. 2010 à 12:33
14 sept. 2010 à 12:33
C'est normal, car comme tu ne lui dis pas que c'est du PHP, il gère tout comme du javascript.
Du coup, $connectphp devient une variable JAVASCRIPT valant 5.
Par contre, il ne connait pas $_SESSION['connection'], qui est purement PHP et n'a pas été déclarée en javascript. (Mais si tu le mets entre guillemets, ça devient une chaîne de caractère, donc pas de problème il te l'affiche).
Pour bien comprendre, ouvre ta page javascript dans ton navigateur, et fais « afficher la source ». Normalement, tu ne devrais y trouver AUCUN code PHP.
Xavier
Du coup, $connectphp devient une variable JAVASCRIPT valant 5.
Par contre, il ne connait pas $_SESSION['connection'], qui est purement PHP et n'a pas été déclarée en javascript. (Mais si tu le mets entre guillemets, ça devient une chaîne de caractère, donc pas de problème il te l'affiche).
Pour bien comprendre, ouvre ta page javascript dans ton navigateur, et fais « afficher la source ». Normalement, tu ne devrais y trouver AUCUN code PHP.
Xavier
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
13 sept. 2010 à 21:05
13 sept. 2010 à 21:05
J'ai réussi à faire un alert qui me renvoi : $_SESSION['connection'
Avec ces lignes :
Mais moi c'est la valeur contenu dans cette foutu variable que je veux >.<
Avec ces lignes :
$connectphp="$_SESSION['connection']"; var connectjava=$connectphp; alert (connectjava);
Mais moi c'est la valeur contenu dans cette foutu variable que je veux >.<
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 sept. 2010 à 22:47
13 sept. 2010 à 22:47
tu mélanges alegrement les variables JS et PHP ça ne peut pas marcher, il faut mettre les tags php pour que php interprètes les variables php
$_SESSION['connection'] est une variable php
donc:
et de plus if(session=="ok")
d'où sort cette variable session ??
$_SESSION['connection'] est une variable php
donc:
<?php $connectphp="$_SESSION['connection']"; ?> var connectjava=<?php echo $connectphp; ?> alert (connectjava);
et de plus if(session=="ok")
d'où sort cette variable session ??
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
14 sept. 2010 à 08:29
14 sept. 2010 à 08:29
Merci de ta réponse Alain, mauvais copier coller la variable session !
Sinon, j'ai fait exactement ce que tu as écrit mais cela ne marche pas non plus...
Juste ça :
Ca ne me déclenche pas l'alert...
Du moins chez moi...
Sinon, j'ai fait exactement ce que tu as écrit mais cela ne marche pas non plus...
Juste ça :
<php $connectphp="$_SESSION['connection']; ?> var connectjava=<?php echo $connectphp; ?> alert (connectjava); }
Ca ne me déclenche pas l'alert...
Du moins chez moi...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
14 sept. 2010 à 08:59
14 sept. 2010 à 08:59
l'as tu bien mis dans la fonction ?
de plus des erreurs
tu as mis <php au lieu de
$connectphp="$_SESSION['connection'];
que fait ce " avant $_SESSION ??
de plus des erreurs
tu as mis <php au lieu de
<?php
$connectphp="$_SESSION['connection'];
que fait ce " avant $_SESSION ??
function backoffice() { <?php $connectphp=$_SESSION['connection']; ?> var connectjava=<?php echo $connectphp; ?> alert (connectjava); }
Heryu
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
62
14 sept. 2010 à 09:22
14 sept. 2010 à 09:22
Je suis sur un autre PC donc obligé de re-écrire le code à la main donc j'ai pu faire des erreurs désolé ^^"
J'ai trouvé une alternative qui fonctionne en appelant la fonction JS sur mon fichier php :
et du coup dans le fichier javascript .js.php :
Merci encore pour votre aide très précieuse :)
J'ai trouvé une alternative qui fonctionne en appelant la fonction JS sur mon fichier php :
backoffice('<?php echo $_SESSION['connection']; ?>');
et du coup dans le fichier javascript .js.php :
function backoffice(connectjava) { alert (connectjava);
Merci encore pour votre aide très précieuse :)