|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 128 ![]() |
Bien le bonjour
je peaufine ce 1er site, pour le HTML ça roule à peu près, mais je me perd avec l'utilisation des variables ($_POST, $_SESSION) et les cookies. J'essaie de rendre mon site bilingue (Fra/Eng), comme il y a très peu de texte je ne crée pas 2 sites, ni 2 pages différentes (1 pour chaque langue) et dans le code HTML il y a donc 2 containers, l'un en français, l'autre en anglais, il faut bien sûr une condition pour afficher l'un ou l'autre. j'ai rajouté un bouton qui permet de dire je change la condition, mais je n'y arrive pas, j'arrive pas en fait à ce que le bouton change la variable, j'ai essayé en écrivant un cookie 'lang', avec une fonction lang(), mais j'ai tout faux. en desespoir de cause j'ai trouvé cette astuce du serveur qui renseigne la langue du navigateur, mais on ne peut pas changer de version ![]() qqs conseils SVP voilà un exemple de code qui marche pas: Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Il manque le nom de ton champ la
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 128 ![]() |
merci de ta réponse, mais s'il ne manquait que ça ...
en clickant sur le bouton je voudrais qu'un booleen fasse la bascule entre les 2 langages et je ne vois pas comment. Dois je utiliser un bouton submit ? comment récupérer la validation ? comment changer la valeur (avec une fonction ?) , ... bref comment vous coderiez ce bouton ? |
|
|
00
|
|
|
#4 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Tu peux avoir un formulaire et un bouton ou même un simple lien (texte ou image).
La valeur de langue reçue sera simplement stockée en session. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 128 ![]() |
oui dit comme ça, ça coule de source ... pour toi
moi je connaissais rien à HTML/CSS/PHP il y a 1 mois, aussi je bute sur beaucoup de choses je met quoi comme formulaire ? input "submit" ? ds la ligne form je met quoi ds action "mapage.php" ? ou une autre page ? bref je n'y arrive pas |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : juin 2004 Messages : 30 ![]() |
salut,
pas d'action dans le formulaire afin de ne pas changer de page le formulaire peut être ainsi <form action="" method="post"> <input type="submit" name="lang" value="FR" /> </form> tu récupère $_POST['lang'] comme tu le fait déja dans ton code. ensuite il faut réfléchir "l'algo" - est ce que j'ai deja un cookie ? - si oui est ce que $_POST['lang'] existe, si oui on change si non on utilise le cookie - si le cookie n'existe pas - est ce que $_POST['lang'] existe si oui on envoie le cookie et on affecte la nouvelle valeur à $lang. si non on utilise la valeur par défaut. @+ |
|
|
10
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 128 ![]() |
Ho un gros merci, tu m'as décoincé, ce formulaire vide me perturbait
J'ai essayé d'utiliser ton algo et j'ai codé ça à "ma façon", ça marche à peu près, le menu ne se rafraichit pas en clickant sur le bouton, mais après oui, lol enfin bon, l'utilisateur éventuel va pas passer son temps à clicker sur ça je réalise que l'idéal serait une session pour ne pas avoir à répéter la même chose à toutes les pages, mais bon ça marche n'hésitez pas à corriger ce qui vous choque Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() Inscription : juin 2004 Messages : 30 ![]() |
Yop,
perso j'aurais fait un truc un peu plus dynamique afin de ne pas avoir a ajouter un elseif si j'ajoute une langue (ben oui le chinois est tendance ^^). un truc dans le genre Code :
@+ |
||
|
|
10
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 128 ![]() |
ha oui pas mal, si je veux rajouter le néerlandais ou l'allemand, bref des gens du Nooord
pour le menu je ne comprend pas, visiblement, il rafraichit la page, mais pas la fonction, menu$ n'est pas mis à jour immédiatement, par contre aller fouiller ds PHP.ini ... ![]() j'ai bien trop peur de tout bouziller Merci à vous tous et si qqu'un comprend cette histoire de menu
|
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : juin 2004 Messages : 30 ![]() |
c'est p'tet pas ça le soucis, après faut voir comment fonctionne le menu, c'est peut être simplement un soucis de cache s'il y en a un.
bref pas assez de donnée pour savoir d'ou viens le problème @+ |
|
|
00
|
|
|
#11 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 128 ![]() |
là où ça devient comique c'est si tu recliques sur le bouton, alors là tu as un melting site
arf voila le code pour la fonction affichemenu() Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Membre du Club
![]() Inscription : juin 2004 Messages : 30 ![]() |
heu déjà devrait pas y avoir balise html l@. cette balise est unique et au début du fichier html, donc le fichier qui inclus le menu.
ensuite tu utilise directement le cookie, tu devrais plutôt passer en argument de la fonction affiche_menu la valeur de la langue. Cela évitera le problème que tu a qui est du au fait que le cookie n'est pas lisible directement après l'envoie mais seulement au ré-affichage de la page (car on lit les cookie une fois placer mais pas "en même temps"). ta fonction deviendrais donc Code :
pour l'utiliser soit tu la garde ainsi soit (et donc utilisation du fr en défaut soit tu met le cookie ou plutôt la variable $lang que tu génère avec le 1er code soit affiche_menu($lang); Après tu devrais faire plus simple en utilisant l'égalité plutôt que la négation (dans le test de la langue) et a la limite modifier la fonction pour du multilingue @+ |
||
|
|
10
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : octobre 2009 Messages : 128 ![]() |
pour l'entête HTML, ds un autre de mes messages de noob, un intervenant m'a dit le contraire, qu'il fallait mettre ça ds toutes mes pages PHP
le problème avec le cookie, c'est qu'il faut tj le mettre en début de code, c'est chiant et pas simple à cogiter je trouve, si je le met pas en début de page index, je le met où ? dans la fonction ? ds ton code, pour la fonction, tu mets en argument: $lang="fr" là vraiment je comprend pas le sens de çaen tout cas merci de m'aider ![]() j'ai donc mis $menu=affiche_menu($lang) et ça marche nickel ! ![]() Bravo |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com