[PHP] visibilité de variable
Fermé
cyril.eseo
Messages postés
19
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
15 octobre 2007
-
31 juil. 2007 à 13:05
Alain42 - 1 août 2007 à 09:13
Alain42 - 1 août 2007 à 09:13
A voir également:
- [PHP] visibilité de variable
- Easy php - Télécharger - Divers Web & Internet
- Php natif - Forum PHP
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
7 réponses
cyril.eseo
Messages postés
19
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
15 octobre 2007
3
31 juil. 2007 à 13:51
31 juil. 2007 à 13:51
Je crois que c'est plutot le type de la variable et le test qui ne va pas.
La variable provient de la fonction :
J'ai essayer different moyen de la tester comme:
Mais rien a faire, pourtant le echo me donne 1 et sans espace !
La variable provient de la fonction :
function GetCookie () { var cookValue = "" ; var cookName = "" ; //position de "=" dans le cookie var egal= document.cookie.indexOf( "=" ) ; cookName = document.cookie.substring ( 0, egal ) ; //on prend la sous-chaine comprise entre le "=" et le ";" donc sa valeur cookValue = document.cookie.substring ( egal + 1 ) ; return cookValue; }
J'ai essayer different moyen de la tester comme:
if(strcmp($action_type,"1")==0) if($action_type, 1)
Mais rien a faire, pourtant le echo me donne 1 et sans espace !
Une chose me surprend, comment peux tu récuperer en php une valeur JS ?
php s'exécute sur le serveur avant le chargement de la page HTML, et JS s'exécute lorsque la page est chargée dans le navigateur.
- une solution c'est que JS écrive dans la page HTML par GetElementByID('id_a_ecrire').value ou GetElementByID('id_a_ecrire').innerHTML
et ensuite en php tu traite cette valeur à l'occasion d'un nouveau rechargement de la page;
On peut passer des valeurs de variables de php à JS mais pas l'inverse.
-ou en utilisant AJAX
php s'exécute sur le serveur avant le chargement de la page HTML, et JS s'exécute lorsque la page est chargée dans le navigateur.
- une solution c'est que JS écrive dans la page HTML par GetElementByID('id_a_ecrire').value ou GetElementByID('id_a_ecrire').innerHTML
et ensuite en php tu traite cette valeur à l'occasion d'un nouveau rechargement de la page;
On peut passer des valeurs de variables de php à JS mais pas l'inverse.
-ou en utilisant AJAX
cyril.eseo
Messages postés
19
Date d'inscription
mardi 31 juillet 2007
Statut
Membre
Dernière intervention
15 octobre 2007
3
31 juil. 2007 à 18:49
31 juil. 2007 à 18:49
Je sais que php c'est coté serveur et js coté client.
Pour mieux comprendre, je vais expliquer ce que je fais:
Dans le cadre d'utilisation de mapserver, je dois pouvoir zoomer, scroller, ect sur ma carte.
Pour cela j'utilise js pour avoir des boutons enfonçables et qui le reste lorsque je change la page (d'ou l'utilisation de cookie). Et donc au moment du rechargement de la page (lorsque l'on clique sur la carte), mon code PHP vient récuperer par l'intermediaire d'une fonction js le bouton enfoncé.
Donc, oui Alain49 tu a raison ce n'est possible que parce que je recharge ma page. Mais dans mon cas c'est ce que je recherche et cela marche, je récupère bien la bonne valeur.
Mon problème et que ma variable $action_type qui quand je l'affiche, contient par exemple 1, ne veut pas subir de test.
A part celui qui teste si elle est vide, mais moi je veux une valeur.
Si quelqu'un a une petite idée.
Sinon je pense que je vais essayer de récuperer un cookie directement en PHP ou me tourner vers Ajax (mais ca ma l'air un peu compliqué vu ce que je veux en faire)
Merci
Pour mieux comprendre, je vais expliquer ce que je fais:
Dans le cadre d'utilisation de mapserver, je dois pouvoir zoomer, scroller, ect sur ma carte.
Pour cela j'utilise js pour avoir des boutons enfonçables et qui le reste lorsque je change la page (d'ou l'utilisation de cookie). Et donc au moment du rechargement de la page (lorsque l'on clique sur la carte), mon code PHP vient récuperer par l'intermediaire d'une fonction js le bouton enfoncé.
Donc, oui Alain49 tu a raison ce n'est possible que parce que je recharge ma page. Mais dans mon cas c'est ce que je recherche et cela marche, je récupère bien la bonne valeur.
Mon problème et que ma variable $action_type qui quand je l'affiche, contient par exemple 1, ne veut pas subir de test.
A part celui qui teste si elle est vide, mais moi je veux une valeur.
Si quelqu'un a une petite idée.
Sinon je pense que je vais essayer de récuperer un cookie directement en PHP ou me tourner vers Ajax (mais ca ma l'air un peu compliqué vu ce que je veux en faire)
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zefoots
Messages postés
146
Date d'inscription
samedi 9 juin 2007
Statut
Membre
Dernière intervention
11 septembre 2007
62
1 août 2007 à 00:12
1 août 2007 à 00:12
Salut,
J'ai pas bien compris l'histoire de rechargement de la page, mais bon ...
Juste une idée en passant pour essayer de faire avancer le chmilblic: tu initialises
J'ai pas bien compris l'histoire de rechargement de la page, mais bon ...
Juste une idée en passant pour essayer de faire avancer le chmilblic: tu initialises
var cookValue = "";dans ta fonction GetCookie() donc c'est une chaîne et non un nombre. Donc, ne faudrait-il pas écrire
if (trim($action_type) == "1") {(avec des guillemets sur le "1") et non pas
if ($action_type == 1) {?
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 août 2007 à 00:48
1 août 2007 à 00:48
Bonjour,
Tu te trompes. Ta variables $actionType ne vaut jamais 1. Elle vaut, par contre, une chaine de caractères, qui est :
"<script type=\"text/javascript\">document.write(GetCookie())</script>"
Quand tu essaies de la tester en faisant un "echo", en fait, ça ne renvoit pas 1 : regarde le code source de la page plutôt que son affichage ! Ca renvoit cette chaine de caractère, qui, elle, va être lue par le navigateur comme un javascript, et le navigateur va donc afficher le contenu du cookie (1, par exemple).
MAIS POUR LE PHP, TA VARIABLE N'A JAMAIS EU LA VALEUR DU COOKIE.
Pour récupérer la valeur d'un cookie, je te conseille plutôt d'utiliser la variable globale $_COOKIE, qui fonctionne comme les variables $_GET et $_POST : si le cookie que tu veux s'appelle "toto", alors place la ligne suivante :
$actionType = $_COOKIE["toto"];
Volà, j'espère t'avoir aidé...
Xavier
Tu te trompes. Ta variables $actionType ne vaut jamais 1. Elle vaut, par contre, une chaine de caractères, qui est :
"<script type=\"text/javascript\">document.write(GetCookie())</script>"
Quand tu essaies de la tester en faisant un "echo", en fait, ça ne renvoit pas 1 : regarde le code source de la page plutôt que son affichage ! Ca renvoit cette chaine de caractère, qui, elle, va être lue par le navigateur comme un javascript, et le navigateur va donc afficher le contenu du cookie (1, par exemple).
MAIS POUR LE PHP, TA VARIABLE N'A JAMAIS EU LA VALEUR DU COOKIE.
Pour récupérer la valeur d'un cookie, je te conseille plutôt d'utiliser la variable globale $_COOKIE, qui fonctionne comme les variables $_GET et $_POST : si le cookie que tu veux s'appelle "toto", alors place la ligne suivante :
$actionType = $_COOKIE["toto"];
Volà, j'espère t'avoir aidé...
Xavier
Tu devrais essayer avec Ajax, moi j'y ai "gouté" et c'est de la balle!
Au début un peu difficile à comprendre et mettre en oeuvre, mais après c'est super car pas besoin de recharger la page, donc plus rapide, plus fluide.
vas voir les tutos sur le sujet sur google (ou autre)
le principe général:
- par exemple le onClick d'un bouton appelle la fonction Ajax makeRequest (en lui passant les parametres que tu veux)
- cette fct appelle un script php en arrière plan et lui envoie en post (ou get) les datas que tu veux
- ton script récupére ces datas, et peux lire dans une BD, faire des traitements etc et répond
- la fct Ajax traite la réponse et écrit dans la page HTML par la methode
getElementbyId('id_a_ecrire').innerHTML=texte reçu du script ou
getElementbyId('id_a_ecrire').value=texte reçu du script
essayes.
Si tu veux j'ai un exemple avec des listes liées.
Au début un peu difficile à comprendre et mettre en oeuvre, mais après c'est super car pas besoin de recharger la page, donc plus rapide, plus fluide.
vas voir les tutos sur le sujet sur google (ou autre)
le principe général:
- par exemple le onClick d'un bouton appelle la fonction Ajax makeRequest (en lui passant les parametres que tu veux)
- cette fct appelle un script php en arrière plan et lui envoie en post (ou get) les datas que tu veux
- ton script récupére ces datas, et peux lire dans une BD, faire des traitements etc et répond
- la fct Ajax traite la réponse et écrit dans la page HTML par la methode
getElementbyId('id_a_ecrire').innerHTML=texte reçu du script ou
getElementbyId('id_a_ecrire').value=texte reçu du script
essayes.
Si tu veux j'ai un exemple avec des listes liées.