Initialiser une session dans un onclick
Résolu/Fermé
Bonjour,
Je débute en php et je me demandais, si c'était possible d'initialiser $_SESSION['lang'] lorsqu'on clique sur le lien.
Qui ressemblerait à cela :
<div id="lang">
<a href="#" id="langfr" onclick="<?php $_SESSION['lang']='FR'?>">FR</a>
<a href="#" id="langen" onclick="<?php $_SESSION['lang']='EN'?>">EN</a>
</div>
Mais cela ne fonctionne pas.
Je débute en php et je me demandais, si c'était possible d'initialiser $_SESSION['lang'] lorsqu'on clique sur le lien.
Qui ressemblerait à cela :
<div id="lang">
<a href="#" id="langfr" onclick="<?php $_SESSION['lang']='FR'?>">FR</a>
<a href="#" id="langen" onclick="<?php $_SESSION['lang']='EN'?>">EN</a>
</div>
Mais cela ne fonctionne pas.
A voir également:
- Initialiser une session dans un onclick
- Facebook session expirée ✓ - Forum Facebook
- Www.yahoomail.com ouverture de session ✓ - Forum Yahoo mail
- Impossible initialiser disque dur redondance cyclique - Forum Disque dur / SSD
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? - Forum Windows
- Verrouiller la session et laisser programme en tâche de fond ✓ - Forum Windows 7
3 réponses
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
13 mars 2014 à 11:56
13 mars 2014 à 11:56
onclick est un événement déclenché côté client (navigateur), tandis que ton php est interprété côté serveur. Tu ne peux pas demander à ton client d'assigner une variable côté serveur, alors que le serveur a fini de générer ta page.
Il faut donc que ton onclick déclenche un nouvel appel au serveur. Soit par l'intermédiaire d'un appel classique à une nouvelle page, ou soit via une requête de type ajax.
Il faut donc que ton onclick déclenche un nouvel appel au serveur. Soit par l'intermédiaire d'un appel classique à une nouvelle page, ou soit via une requête de type ajax.
A mon avis cela ne fonctionne pas à cause du lien qui n'existe pas dans le href, as-tu essayer de le remplacer par une page existante ?
Sinon, AJAX.
Sinon, AJAX.
Alors j'ai fait des recherches sur ajax, et j'ai trouvé qu'il fallait faire cela :
<script type="text/javascript">
jQuery().ready(function(){
$("#langfr").click(function(){
$.ajax({
type: "POST",
url: "/lib/lang/langfr.php",
}).done(function(e) {
location.reload();
});
});
$("#langen").click(function(){
$.ajax({
type: "POST",
url: "/lib/lang/langen.php",
}).done(function(e) {
location.reload();
});
});
});
</script>
<div id="lang">
<a href="#" id="langfr">FR</a>
<a href="#" id="langen">EN</a>
</div>
//---------langfr.php-----------
<?php
$_SESSION['lang']='FR';
?>
//---------langen.php-----------
<?php
$_SESSION['lang']='EN';
?>
Mais, cela n'a pas l'air de fonctionner ....
<script type="text/javascript">
jQuery().ready(function(){
$("#langfr").click(function(){
$.ajax({
type: "POST",
url: "/lib/lang/langfr.php",
}).done(function(e) {
location.reload();
});
});
$("#langen").click(function(){
$.ajax({
type: "POST",
url: "/lib/lang/langen.php",
}).done(function(e) {
location.reload();
});
});
});
</script>
<div id="lang">
<a href="#" id="langfr">FR</a>
<a href="#" id="langen">EN</a>
</div>
//---------langfr.php-----------
<?php
$_SESSION['lang']='FR';
?>
//---------langen.php-----------
<?php
$_SESSION['lang']='EN';
?>
Mais, cela n'a pas l'air de fonctionner ....
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
13 mars 2014 à 13:56
13 mars 2014 à 13:56
Tu dois préalablement faire un session_start() dans tes fichiers langfr.php et langen.php.
Au passage, tu aurais pu ne créer qu'un seul fichier et lui passer la langue voulue en argument.
Au passage, tu aurais pu ne créer qu'un seul fichier et lui passer la langue voulue en argument.
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
13 mars 2014 à 14:28
13 mars 2014 à 14:28
Après ça dépend ce que tu souhaites obtenir comme résultat. En procédant ainsi le résultat n'est pas visible puisque ta page n'a pas été regénérée. Et je suppose que le contenu de cette variable de session influe sur le contenu de la page en elle-même...