Variable PHP dans Variable Javascript
Résolu
Heryu
Messages postés
567
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une page réservé pour les fonctions javascript de mon site en PHP.
J'aimerais qu'une de mes variables javascript ai la même valeur qu'une variable en PHP (session). J'ai écrit cela pour l'instant :
var session='<php echo $_SESSION['connection']; ?>';
Hélas cela ne marche pas... J'ai également testé avec une variable bidon style :
var session='<?php echo $test; ?>';
Avez-vous une solution à ça ?
Merci d'avance :)
J'ai une page réservé pour les fonctions javascript de mon site en PHP.
J'aimerais qu'une de mes variables javascript ai la même valeur qu'une variable en PHP (session). J'ai écrit cela pour l'instant :
var session='<php echo $_SESSION['connection']; ?>';
Hélas cela ne marche pas... J'ai également testé avec une variable bidon style :
var session='<?php echo $test; ?>';
Avez-vous une solution à ça ?
Merci d'avance :)
A voir également:
- Variable PHP dans Variable Javascript
- Easy php - Télécharger - Divers Web & Internet
- Vba range avec variable ✓ - Forum VB / VBA
- Variable d'environnement temp ✓ - Forum Microsoft Office
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- A javascript error occurred in the main process - Forum Matériel & Système
14 réponses
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
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...
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 !
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
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;
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 !
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 ^^"
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(); } }
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...
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
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 >.<
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 ??
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...
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); }
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 :)