PHP <Select name="lang">... Need Help !
Résolu/Fermé
aurelbo
Messages postés
548
Date d'inscription
mercredi 21 avril 2010
Statut
Membre
Dernière intervention
28 avril 2018
-
Modifié par aurelbo le 6/01/2011 à 16:38
aurelbo Messages postés 548 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 28 avril 2018 - 6 janv. 2011 à 17:08
aurelbo Messages postés 548 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 28 avril 2018 - 6 janv. 2011 à 17:08
A voir également:
- PHP <Select name="lang">... Need Help !
- Easy php - Télécharger - Divers Web & Internet
- Need for speed: world - Télécharger - Jeux vidéo
- Php natif - Forum PHP
- Please select boot device - Forum Matériel & Système
- Err-name-not-resolved ✓ - Forum Réseaux sociaux
3 réponses
darkygame
Messages postés
351
Date d'inscription
lundi 22 juin 2009
Statut
Contributeur
Dernière intervention
3 avril 2012
149
Modifié par darkygame le 6/01/2011 à 17:00
Modifié par darkygame le 6/01/2011 à 17:00
Bonjour,
J'ai testé, ça fonctionne. Mon "echo" affiche la valeur.
Pourant je n'ai quasiment rien modifié.
essai à nouveau !
DarkyGammmme
???? Mettez-le sous corticoïdes et faîtes-lui une biopsie cérébrale. ????
Dr.House
J'ai testé, ça fonctionne. Mon "echo" affiche la valeur.
Pourant je n'ai quasiment rien modifié.
<form method="post" action="index.php"> <select name="lang"> <option value="es">Español </option> <option value="fr">Français </option> <option selected value="en">English </option> <option value="de">Wörterbuch </option> </select> <input type="Submit" value"OK"/> </form> <?php if ($_POST['lang']=="es") { include 'es-lang.php'; } if ($_POST['lang']=="en") { include 'en-lang.php'; } if ($_POST['lang']=="d") { include 'd-lang.php'; } if ($_POST['lang']=="fr") { include 'fr-lang.php'; } echo $_POST['lang']; ?>
essai à nouveau !
DarkyGammmme
???? Mettez-le sous corticoïdes et faîtes-lui une biopsie cérébrale. ????
Dr.House
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
6 janv. 2011 à 17:02
6 janv. 2011 à 17:02
Bonjour,
Le problème, c'est que tu places ton formulaire et l'action à réaliser sur la même page. Du coup, à l'affichage du formulaire, avant même que l'utilisateur ait pu lui cliquer dessus, il va déjà aller chercher le $_POST['lang'] ! Qui n'a, évidemment, pas encore été défini.
La meilleure solution dans ce cas-là, c'est de vérifier son existence avant de l'utiliser.
Accessoirement, tu auras également un (petit) soucis avec la sélection de la langue qui restera sur English même si la page sélectionnée et affichée est devenue l'espagnol.
Si on rajoute que l'utilisation de switch()...case... dans ton cas est plus adaptée que la série de if(), même si celle-ci fonctionne, ton code donnerait donc :
Si tu es sûr que tes fichiers s'appelleront toujours comme ça, tu peux même remplacer tout le bloc d'inclusion par cette ligne unique :
include $lang.'-lang.php';
Xavier
Le problème, c'est que tu places ton formulaire et l'action à réaliser sur la même page. Du coup, à l'affichage du formulaire, avant même que l'utilisateur ait pu lui cliquer dessus, il va déjà aller chercher le $_POST['lang'] ! Qui n'a, évidemment, pas encore été défini.
La meilleure solution dans ce cas-là, c'est de vérifier son existence avant de l'utiliser.
Accessoirement, tu auras également un (petit) soucis avec la sélection de la langue qui restera sur English même si la page sélectionnée et affichée est devenue l'espagnol.
Si on rajoute que l'utilisation de switch()...case... dans ton cas est plus adaptée que la série de if(), même si celle-ci fonctionne, ton code donnerait donc :
<?php // Récupération de la langue choisie, avec "en" comme valeur par défaut. $lang = (isset($_POST['lang'])) ? $_POST['lang'] : 'en'; ?> <form method="post" action="index.php"> <select name="lang"> <option value="es">Español <?php echo(($lang == 'es') ? 'selected="selected"' : ''; ?> </option> <option value="fr">Français <?php echo(($lang == 'fr') ? 'selected="selected"' : ''; ?> </option> <option value="en" <?php echo(($lang == 'en') ? 'selected="selected"' : ''; ?> </option> <option value="d">Wörterbuch <?php echo(($lang == 'd') ? 'selected="selected"' : ''; ?> </option> </select> <input type="Submit" value"OK"/> </form> <?php $aInclure = ''; switch ($lang) { case 'es': $aInclure = 'es-lang.php'; break; case 'en': $aInclure = 'en-lang.php'; break; case 'fr': $aInclure = 'fr-lang.php'; break; case 'd': $aInclure = 'd-lang.php'; break; } include $aInclure; ?>
Si tu es sûr que tes fichiers s'appelleront toujours comme ça, tu peux même remplacer tout le bloc d'inclusion par cette ligne unique :
include $lang.'-lang.php';
Xavier
aurelbo
Messages postés
548
Date d'inscription
mercredi 21 avril 2010
Statut
Membre
Dernière intervention
28 avril 2018
82
6 janv. 2011 à 17:08
6 janv. 2011 à 17:08
En effet merci de votre aide effectivement les switch simplifie la lecture du programme ^^
Merci pour la ligne d'inclusion cela va m'être très utile.
Ce que je vais faire c'est mettre le site en anglais par défaut.
Merci beaucoup ;)
Merci pour la ligne d'inclusion cela va m'être très utile.
Ce que je vais faire c'est mettre le site en anglais par défaut.
Merci beaucoup ;)
aurelbo
Messages postés
548
Date d'inscription
mercredi 21 avril 2010
Statut
Membre
Dernière intervention
28 avril 2018
82
6 janv. 2011 à 17:03
6 janv. 2011 à 17:03
o_O je viens de remarquer ça. J'y comprend plus rien mdr
Je devrais peut être mettre le test !empty() pour éviter les undefined. Merci désolé du dérangement ;)
Je devrais peut être mettre le test !empty() pour éviter les undefined. Merci désolé du dérangement ;)
aurelbo
Messages postés
548
Date d'inscription
mercredi 21 avril 2010
Statut
Membre
Dernière intervention
28 avril 2018
82
6 janv. 2011 à 17:05
6 janv. 2011 à 17:05
et de mettre une langue par défaut.
6 janv. 2011 à 17:06