Conserver une variable dans une session
Résolu
philippef
-
philippef -
philippef -
Bonjour,
je suis en train de construire un site de jumelage!! Donc un site en 2 langues.
Dans l'entête du site on clique sur un drapeau (en fait un blason) français ou sur un drapeau allemand pour afficher un menu en français ou en allemand.
J'essaie de passer par une session mais ça ne marche pas!!!
le code du fichier index.php
EDIT : Correction des balises de code pour avoir la coloration syntaxique
Au départ le site est bien affiché en français (c'est ce que je veux). Quand je clique sur le blason allemand le menu qui apparaît est bien écrit en allemand . C'est aussi ce que je veux.
Le problème c'est que si je clique sur "home" par exemple le menu revient sur français !!!
Si quelqu'un peut m'aider ou me donner une autre solution ...
Merci d'avance
je suis en train de construire un site de jumelage!! Donc un site en 2 langues.
Dans l'entête du site on clique sur un drapeau (en fait un blason) français ou sur un drapeau allemand pour afficher un menu en français ou en allemand.
J'essaie de passer par une session mais ça ne marche pas!!!
le code du fichier index.php
<?php session_start(); if (isset($_GET['choixlangue'])){ $_SESSION['choixlangue']; } ?> <!DOCTYPE HTML> <html> <head> ...... <?php if (isset($_POST['french'])) $langue = $_POST['french']; if (isset($_POST['deutch'])) $langue = $_POST['deutch']; else $langue = "F"; ?> <div id="global"> <FORM NAME="langue" ACTION="index.php?page=index" METHOD="post"> <div id="bandeau"> <div id="b1"><input name="french" src="images/blason-Troissy.jpg" type="image" value="F" id="imgbandeau" ></div> <div id="b2">JUMELAGE <br> TROISSY ~ PARTENHEIM </br></div> <div id="b3"><input name="deutch" src="images/blason-Partenheim.jpg" type="image" value="D" id="imgbandeau2" > <input type="text" name="choixlangue" value="<?php echo $langue; ?>" style="width:10%; display:inline;"> </div> </div> </FORM> <?php if ($langue == "F"){ ?> <div id="menuF"> <div id="menu"> <ul> <li><a href="index.php?page=accueilF">Accueil</a></li> <li><a href="index.php?page=historiqueF">Historique</a> <ul> <li><a href="#">Sous-item 1</a></li> <li><a href="#">Sous-item 2</a></li> <li><a href="#">Sous-item 3</a></li> </ul> </li> <li><a href="#">contact</a></li> </ul> </div> </div> <?php } else { ?> <div id="menuD"> <div id="menu"> <ul> <li><a href="index.php?page=accueilD">Home</a></li> <li><a href="#">Historiche</a> <ul> <li><a href="#">Sous-item 1</a></li> <li><a href="#">Sous-item 2</a></li> <li><a href="#">Sous-item 3</a></li> </ul> </li> <li><a href="#">Kontakt</a></li> </ul> </div> </div> <?php } ?> <div id="conteneur"> ...
EDIT : Correction des balises de code pour avoir la coloration syntaxique
Au départ le site est bien affiché en français (c'est ce que je veux). Quand je clique sur le blason allemand le menu qui apparaît est bien écrit en allemand . C'est aussi ce que je veux.
Le problème c'est que si je clique sur "home" par exemple le menu revient sur français !!!
Si quelqu'un peut m'aider ou me donner une autre solution ...
Merci d'avance
A voir également:
- Conserver une variable dans une session
- Www.yahoomail.com ouverture de session ✓ - Forum Yahoo mail
- Veuillez ouvrir une session avec les privilèges du gestionnaire ✓ - Forum Windows
- Veuillez ouvrir une session avec les privilèges de gestionnaire - Forum Windows 10
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Vba range avec variable ✓ - Forum VB / VBA
1 réponse
Bonjour,
Déjà, évite de mettre plusieurs variables pour tes langues...Cela t'oblige à vérifier chaque possibilité....
Donc ton formulaire serait plutot :
Ensuite, il te faut stocker... et récupérer la valeur de la langue qui se trouve dans la session....
Déjà, évite de mettre plusieurs variables pour tes langues...Cela t'oblige à vérifier chaque possibilité....
Donc ton formulaire serait plutot :
<div id="bandeau"> <div id="b1"> <img src="images/blason-Troissy.jpg" id="imgbandeau" class="clschoixLangue" data-langue="F"/> </div> <div id="b2">JUMELAGE <br> TROISSY ~ PARTENHEIM </br></div> <div id="b3"> <img src="images/blason-Partenheim.jpg" id="imgbandeau2" class="clschoixLangue" data-langue="D" /> </div> </div> <form name="langue" action="" method="post" id="formLangue"> <input type="text" id="choixlangue" name="choixlangue" value="<?php echo $langue; ?>" style="width:10%; display:inline;"> </form> <script type="text/javascript"> var choisirLangue = function() { //on récupère la langue cliquée var lng = this.getAttribute("data-langue"); console.log("choix langue = " + lng); //on place la langue dans l'input text document.getElementById('choixlangue').value = lng; //on submit le formulaire document.getElementById("formLangue").submit(); }; var classname = document.getElementsByClassName("clschoixLangue"); for (var i = 0; i < classname.length; i++) { classname[i].addEventListener('click', choisirLangue, false); } </script>
Ensuite, il te faut stocker... et récupérer la valeur de la langue qui se trouve dans la session....
session_start(); //code à placer au début de tes pages //si il y a eu un chanchement ( submit du formulaire) if(!empty($_POST['choixlangue'] )){ //on récupère la nouvelle langue $langue = $_POST['choixlangue'] ; // on place la langue en session_cache_expire $_SESSION['langue'] = $langue; }else{ //on regarde en session si la langue est définie if(!empty($_SESSION['langue'])){ $langue = $_SESSION['langue']; }else{ //langue par défaut $langue = "F"; } }
Questions :
- Pourquoi les blasons ne sont plus des INPUT ?
- Il me semble que la fonction n'est pas appelée sur les images !!
Quand je clique sur l'image il ne se passe rien !!
Par contre, ça devrait fonctionner à condition que tu aies bien repris exactement mon code... y compris le javascript !
Penses à regarder dans la console de ton navigateur si tu n'as pas d'erreur sur le JS lorsque tu cliques sur les images.
Donc résolu pour moi.