Redirection par menu deroulant

Eléphanteau du PHP | 16 Messages

13 déc. 2005, 12:37

Bonjour à tous,

J'ai besoin d'un code très simple pour faire une redirection par menu deroulant.

Très simple car il doit être intègré dans un CMS en java qui réécrit la page et enlevant le header et plein de chose.

J'ai pensé à faire quelque chose du genre :

Code : Tout sélectionner

<FORM> <SELECT NAME="ListeUrl" SIZE=1> <OPTION SELECTED VALUE="">-Selectionnez votre destination-</OPTION> <OPTION onClick="javascript:location.href=http://lien1.html">lien 1</OPTION> <OPTION onClick="javascript:location.href=http://lien2.html">lien 1</OPTION> <OPTION onClick="javascript:location.href=http://lien3.html">lien 1</OPTION> </SELECT> </FORM>
Mais ça ne fonctionne pas.
Si quelqu'un à une idée, merci d'avance.

A oui, il doit être compatible Mozilla.
YpLee

Eléphant du PHP | 219 Messages

14 déc. 2005, 12:45

Avec des simples quotes (autour du lien) ça devrait marcher je pense :

<OPTION onClick="javascript:location.href='http://lien1.html'">lien 1</OPTION>

Mammouth du PHP | 19672 Messages

14 déc. 2005, 12:52

Mauvaise méthode. Essaye plutôt:
<form>
  <select name="ListeUrl" size="1" onchange="if(this.value != ''){document.location.href = this.value}">
  <option selected="selected" value="">-Selectionnez votre destination-</option>
  <option value="http://lien1.html">lien 1</option>
  <option value="http://lien2.html">lien 2</option>
  <option value="http://lien3.html">lien 3</option>
  </select>
</form>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

14 déc. 2005, 13:05

onClick n'est effectivement pas adapté pour un menu déroulant.
Un résumé sur ToutJavascript.com
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 353 Messages

14 déc. 2005, 15:33

Mauvaise méthode. Essaye plutôt:
<form>
  <select name="ListeUrl" size="1" onchange="if(this.value != ''){document.location.href = this.value}">
  <option selected="selected" value="">-Selectionnez votre destination-</option>
  <option value="http://lien1.html">lien 1</option>
  <option value="http://lien2.html">lien 2</option>
  <option value="http://lien3.html">lien 3</option>
  </select>
</form>
C'est un peu mieux mais on se trouve avec du javascript dans la page. On ne sépare pas la logique présentation des données et de la navigation. Le plus propre serait de mettre un id sur le select et d'ajouter l'événement onChange sur cet élément en utilisant getElementById au chargement de la page. On ne détecte évidemment pas le chargement de la page avec l'attribut onLoad de la balise body ni avec un javascript en bas de page!

Eléphanteau du PHP | 16 Messages

14 déc. 2005, 18:18

Merci à tous j'essayerais ça demain !
On ne détecte évidemment pas le chargement de la page avec l'attribut onLoad de la balise body ni avec un javascript en bas de page!

Effectivement mais alors es-ce possible ? je ne peux pas mettre de javascript ailleur que dans du code html sinon le moteur du CMS me le transforme en texte ...
YpLee

Eléphanteau du PHP | 16 Messages

15 déc. 2005, 18:06

ça marche super bien !

Merci à vous !
YpLee