8791 sujets

Développement web côté serveur, CMS

Bonjour, bonsoir

Je désespère grandement face a se problème, comme l'indique le titre, je dois mettre le multilingue sur un site codé de façon : html et php séparé, chaque page contient un page php pour le traitement et une page html pour l'affichage...J'en viens donc au, j'aimerai faire un select option mais incapable de récupérer valeur du select.....

Merci par avance, j'espère avoir été clair
pour mon code html au passage

<form name="formlangue" method="post">
<select id="langue" style="position:absolute;right:30px;bottom:30px;" onchange="formlangue.submit();">
	<option value="fr" >English</option>
	<option value="en" >Français</option>
</select>
</form>
Nanulox a écrit :
Bonjour, bonsoir

chaque page contient un page php pour le traitement et une page html pour l'affichage...


on comprend pas trop ce que tu dis.....
une page contient .. du code... et non pas d'autres pages, me semble t'il

étant donné que ton formulaire n'a pas d'attribut action, il recharge la même page. Testes tu l'existence et le contenu de ton tableau $_POST en début de page pour aiguiller ton affichage?
Premièrement merci pour l’intérêt porté.

Ensuite, je me doutais que j'étais pas clair, je reprend. Pour ma page (internet consultable - index.html), il y a en réalité cette fameuse feuille index.html pour l'affichage et une feuille index.php (de ce fait invisible) pour le traitement (modèle MVC en soit...). Mon problème étant que tout le site que je dois reprendre est codé de cette manière (chose que je n'avais jamais fais)

J'ai donc ajouté une page langue.php (page de script) qui se charge de faire le traitement mais je n'arrive pas a lui envoyer le POST de mon option value pour le traitement....En sachant que je dois rester sur ma feuille index.html Smiley biggol

<problematique simplifiée>
Envoyé mon choix de langue vers une feuille php de script depuis une feuille html (qui doit le rester)
AIE
</problematique simplifiée>

J’espère avoir été suffisamment clair
Modifié par Nanulox (09 Jan 2013 - 13:38)
Bonjour,
a écrit :
mais je n'arrive pas a lui envoyer le POST de mon option value pour le traitement

Oui là, vous m’inquiétez car justement, la valeur de votre "select" ne sera pas la résultante du formulaire en POST puisque vous avez mis l'intervention d'un javascript (onchange="formlangue.submit();").
Là, comme je le vois.... quand on sélectionne un élément du menu déroulant, on lance la recherche donc votre résultat sera plutôt du genre dans un js:

sel = document.getElementById("langue");
malangue = sel.options[sel.selectedIndex].value;
window.top.location.href='mapage.php?lang='+malangue;

Là, vous pourrez récupérer la variable:
<?php
$lang = $_GET['lang'];
?>

Là, comme il s'agit d'un passage de variable par GET, vous pourrez conserver la langue. Le mieux c'est de mettre un petit drapeau pour sélectionner la langue avec :
mapage.php?lang=en

etc...

Mais bon, cela fait sous-entendre que vous pourrez changer tous les liens pour ajouter cette variable.
Modifié par tsoko (10 Jan 2013 - 09:59)
Oo Révélation...

Merci beaucoup, c'est exactement la réponse que je cherchais...J'ai compris ce que vous voulais me dire
Mon problème était cette dépendance au modèle MVC (impossibilité de mettre mon php..)
mais avec votre réponse cela me semble plus clair alors un grand merci ! Smiley biggrin

(edit: bon meme si c'est super chiant de devoir rechanger les liens sur un aussi gros site... Smiley sweatdrop )
Modifié par Nanulox (10 Jan 2013 - 10:25)