Récuperer une valeur en php depuis un menu déroulant sans "POST"
gub156
Messages postés
19
Statut
Membre
-
ThEBiShOp Messages postés 9307 Statut Contributeur -
ThEBiShOp Messages postés 9307 Statut Contributeur -
Bonjour,
Je crée ici un nouveau topic car j'ai pas mal fouillé internet sans trouver de réponse précise à ma question (peut-être ai-je mal cherché...)
Je suis débutant en php et je suis devant un problème: je souhaiterais récuperer une valeur d'un menu déroulant à l'aide d'un cookie, mais cela sans bouton "submit".
Plus concrétement, il s'agit d'un menu déroulant permettant la sélection de la langue du site web. Lors d'un changement de langue, je souhaiterais mettre à jour le cookie et rafraîchir le page de manière à l'afficher dans le langue choisie.
Voici le bout de code que j'ai tenté vainement...
Je compare ensuite la variable $language au cookie et effectue les opérations nécessaires en fonction du résultat de la comparaison.
Est-ce d'une manière ou d'une autre possible d'effectuer ce type d'opération?
D'avance merci pour votre aide.
Gub156
Je crée ici un nouveau topic car j'ai pas mal fouillé internet sans trouver de réponse précise à ma question (peut-être ai-je mal cherché...)
Je suis débutant en php et je suis devant un problème: je souhaiterais récuperer une valeur d'un menu déroulant à l'aide d'un cookie, mais cela sans bouton "submit".
Plus concrétement, il s'agit d'un menu déroulant permettant la sélection de la langue du site web. Lors d'un changement de langue, je souhaiterais mettre à jour le cookie et rafraîchir le page de manière à l'afficher dans le langue choisie.
Voici le bout de code que j'ai tenté vainement...
<form> <select name="language" size="1" <?php $language ?>> <option value='1'>English</option> <option value='2'>Français</option> <option value='3'>Deutsch</option> </select> </form>
Je compare ensuite la variable $language au cookie et effectue les opérations nécessaires en fonction du résultat de la comparaison.
if(isset($language)) { if($language != $_COOKIE['language']) { $_COOKIE['language'] = $language; $file = $_SESSION['file']; header("Location: /../$file"); } }
Est-ce d'une manière ou d'une autre possible d'effectuer ce type d'opération?
D'avance merci pour votre aide.
Gub156
A voir également:
- Récuperer une valeur en php depuis un menu déroulant sans "POST"
- Menu déroulant excel - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Comment recuperer une video sur youtube - Guide
6 réponses
Bonjour,
si j'ai bien compris, tu souhaites que lorsque tu choisis une ligne de ta liste, ça envoie le formulaire.
En théorie il te faut un bouton submit pour ça, mais on peut "simuler" ce comportement via javascript.
ensuite tu dois récupérer ta langue via $_GET.
A quoi sert ton <?php $language ?> dans ton form ?
si j'ai bien compris, tu souhaites que lorsque tu choisis une ligne de ta liste, ça envoie le formulaire.
En théorie il te faut un bouton submit pour ça, mais on peut "simuler" ce comportement via javascript.
<head> <script type="text/javascript"> $(document).ready(function(){ $('#language').change(function(){ var url = 'http://www.monsite.com/mapage.php' + '?language=' + $('#language').val(); window.location.href = url; }); }); </script> </head> <body> <form> <select id="language" name="language" size="1"> <option value='eng'>English</option> <option value='fr'>Français</option> <option value='de'>Deutsch</option> </select> </form> </body>
ensuite tu dois récupérer ta langue via $_GET.
A quoi sert ton <?php $language ?> dans ton form ?
Bonjour TheBiShOp,
Tout d'abord, merci pour ta réponse plus que rapide. Je vais essayer ta solution après ce message et je redonnerai des nouvelles sur ce fil dès que possible.
Au sujet de mon code, <?php $language ?> était un essai.... non concluant. Je tentais de récupérer la valeur du menu à travers cette variable.
Encore merci!
Gub
Tout d'abord, merci pour ta réponse plus que rapide. Je vais essayer ta solution après ce message et je redonnerai des nouvelles sur ce fil dès que possible.
Au sujet de mon code, <?php $language ?> était un essai.... non concluant. Je tentais de récupérer la valeur du menu à travers cette variable.
Encore merci!
Gub
Rebonjour,
Voilà comment j'ai adapté le code de TheBiShOp. Cependant, cela ne fonctionne pas dans mon cas.
Rien ne se passe lors du changement de langue, pas même le rafraîchissement de la page web.
Ne connaissant pas le javascript (je découvre le php/MySql, alors un à la fois!), je ne suis pas certain d'avoir utilisé les bonnes syntaxes et surtout d'avoir compris le fonctionnement du script.
Encore une fois, merci pour votre aide.
Amicalement,
Gub
Voilà comment j'ai adapté le code de TheBiShOp. Cependant, cela ne fonctionne pas dans mon cas.
// Javascript <script type="text/javascript"> $(document).ready(function() { $('#language').change(function() { var url = '/../$_SESSION['file']' + '?language=' + $('#language').val(); window.location.href = url; }); }); </script> // Formulaire HTML <div id="language"> <p> <form> <select id="language" name="language" size="1" > <option value='1'>English</option> <option value='2'>Français</option> <option value='3'>Deutsch</option> </select> </form> </p> </div> <?php // Récupération de la variable en php if(isset($_GET["language"])) { if($_GET["language"] != $_COOKIE['language']) { $_COOKIE['language'] = $_GET["language"]; $file = $_SESSION['file']; header("Location: /../$file"); } } } ?>
Rien ne se passe lors du changement de langue, pas même le rafraîchissement de la page web.
Ne connaissant pas le javascript (je découvre le php/MySql, alors un à la fois!), je ne suis pas certain d'avoir utilisé les bonnes syntaxes et surtout d'avoir compris le fonctionnement du script.
Encore une fois, merci pour votre aide.
Amicalement,
Gub
j'ai oublié de te donner un bout, tu dois mettre ça dans le head de ta page
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question