Se connecter / S'enregistrer
Votre question

menu deroulent avec selction qui modifie un lien

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
10 Septembre 2007 20:41:18

Bonjour a tous:

Donc voilà j'ai un truc assès compliquer (je trouve) a realiser, donc si jamais vous aviez la possibilité de me fournir un code :

J'aurais aimer pouvoire créer un page php avecu n menu deroulant, une petit zone texte, et un bouton envoyer

Le seul probleme que si je met dans le menu deroulant:
"
Faites votre choix:
1
2
3
"
par exemple, et bien que si je selectionne 1 lorsque je vais cliquer sur envoyer, le visiteur sera envoyer vers: page1.php
Si je selectionne 2 et bien que sis je clique sur envoyer ça l'envoi sur page2.php et ainsi de suite...

En gros pour modifier selon la selection dans le menu deroulent, la cible du "envoyer"

Voilà je vous en remerci d'avance, a très vite j'espere

Autres pages sur : menu deroulent selction modifie lien

11 Septembre 2007 00:07:02

salut,

c'est pas compliqué...
Tu fais un formulaire donc du pur HTML, et dans celui ci tu fait une liste deroulante, avec comme value ce que tu veux...
et au clic du bouton, tu envoi vers le lien, un peu de javascript sera utile...

essayes de commencer un code, et dis nous où t'en est quand tu bloques...
Anonyme
11 Septembre 2007 07:59:31

Sinon tu peux simplement utiliser du php :
tu renvoie tout vers un script PHP, avec la valeur selectionnée en paramètre POST. Ensuite ton script PHP fait une redirection vers la page correspondante.
Contenus similaires
a c 232 L Programmation
11 Septembre 2007 10:32:07

- onsubmit="sendForm(this);" à rajouter dans la balise form
- fonction javascript sendForm(form) à ajouter dans tes scripts :

function sendForm(form) {
var theSelect = document.getElementById('idDeTonSelect');
form.action = theSelect.options[theSelect.selectedIndex].value;
form.submit();
}

(pas testé mais ça devrait le faire)
11 Septembre 2007 13:08:12

Puisque ça lache les codes, je les lache aussi....

Code avec un bouton :
  1. <form name="nomFormulaire">
  2. <select name="choixLien">
  3. <option value="" selected>--Choisir Page-- </option>
  4. <option value="lien1.php">Lien 1</option>
  5. <option value="lien2.php">Lien 2</option>
  6. <option value="lien3.php">Lien 3</option>
  7. </select>
  8. <input type="button" value="envoyer" onclick="redirectLien()" />
  9. <script type="text/javascript">
  10. function redirectLien() {
  11. var lien = nomFormulaire.choixLien.options[nomFormulaire.choixLien.selectedIndex].value;
  12. if(lien != ""){
  13. window.location.href = lien;
  14. }
  15. }
  16. </script>
  17. </form>


et le meme mais sans bouton, où il suffit de changer le menu deroulant et ça renvoit direct...

  1. <form name="nomFormulaire">
  2. <select name="choixLien" onchange="redirectLien()">
  3. <option value="" selected>--Choisir Page-- </option>
  4. <option value="lien1.php">Lien 1</option>
  5. <option value="lien2.php">Lien 2</option>
  6. <option value="lien3.php">Lien 3</option>
  7. </select>
  8.  
  9. <script type="text/javascript">
  10. function redirectLien() {
  11. var lien = nomFormulaire.choixLien.options[nomFormulaire.choixLien.selectedIndex].value;
  12. if(lien != ""){
  13. window.location.href = lien;
  14. }
  15. }
  16. </script>
  17. </form>



Et ça marche :!
11 Septembre 2007 14:18:20

pourquoi vous vous compliquez la vie avec des fonctions? :p 
  1. <select ..... onchange='this.form.action = this.value'>

remarque, avec ie7?
11 Septembre 2007 20:29:20

Salut a tous, merci pour ces raffales de codes/aides!!!! J'ai pas encore tous bien regarder mais faguement... Je sais pas si yen a d'autre a parMileskabal qui on donner un truc qui permet de modifier le lien d'envoye.
Car j'ai pas pressiser mais jvoudrais derrière remplire un formulaire et qu'après ils choissisent une sorte d'option qui changerais (selons la selection donc) le lien du bouton envoyer, mais sans que ça soit un lien direct, juste que ça change le code pour que envoyer envoie au clique, jusqu'au lien qu'on a fournit correcspondant a la selection du visiteur.

J'espere que tous ça m'ira bien pour pas avoir a monopoliser plus longtemps a ++

PS: je vais aller tester la merci!
a c 232 L Programmation
11 Septembre 2007 21:00:52

Prend la méthode de coca, ça permet de changer le lien d'envoi et c'est le plus simple.
this.form.action définit la valeur "action" de ton formulaire, donc le lien ;) 
12 Septembre 2007 13:18:35

Salut, je te remerci coca25, et aussi les autres (OmaR_ShaRif, Mileskabal, xaebhal).
Je marque mon sujet [resolu] si jamais j'ai un autre question je rechange pour vous poser la question.

Merci a tous a++!
12 Septembre 2007 15:05:28

Salut a tous: j'ai esseiller le code de Mileskabal et il fonctionne super bien, mais maintenant je veu faire plus compliquer (penible? vous avez dit penible? noooon :) ... ^^)

En fait j'ai un bouton qui doit me servir a deux chause: choisir le lien de la selection du menu deroulant (ça c'est bon je l'est) mais je veu en plus rajouter dans le onclick que lorsque l'on clique, en plus de ce que m'a mis Mileskabal c'est a dire: "redirectLien()" et bien je voudrais mettre que "redirectLien()" et "ChangeStatut(this.form)"(les deux)
Car j'ai utiliser le code que Mileskabal m'a donner, et un que j'ai trouver sur l'editeur javascript qui me permet d'obliger de cocher "accepter le reglement".

Voilà je vous en remerci d'avance a++
12 Septembre 2007 15:07:26

tu les sépares par ";"
12 Septembre 2007 15:14:48

a ok!! merci je vais esseiller
12 Septembre 2007 15:16:17

Ca ne fonctionne pas... Car chacun des code a son script js c'est a cause de ça? Je les regroupe dans un même <script> ?

En faite ça reagit comme si ça actualisais la page html au lieu d'aller sur la page que je lui est indiquer
Merci d'avance a toi coca25 ou d'autres si il en arrive entre temps
12 Septembre 2007 15:33:39

je ne sais pas ce qu'est sensé faire ChangeStatut (), je t'ai juste donné comment séparer 2 instructions javascript.

la fonction de Mileskabal comporte un
window.location.href = lien;
ce qui a pour effet de changer l'adresse de la fenetre (d'où l'actualisation), si tu l'executes en premier, tout ce qui vient après ne sera pas lancé.
12 Septembre 2007 15:37:56

a ok donc il faut que je mette l'autre avant?
Bon sinon le changestatut est senser modifier le bouton: tans que l'on a pas cocher une case checkbox et bien le bouton envoyer reste inactif. Par contre si tu coche, le bouton deviendra actif.

Voilà le code du body:
<form action="" methed="post">
<p><input type="checkbox" name="regagree" value="valeur" onClick="ChangeStatut(this.form)" /> J'accepte le reglement</p>

<p><input type="submit" name="validation" value="S'enregistrer" disabled /></p>
</form>
et le code java script entre head et /head
<script type="text/javascript">
function ChangeStatut(formulaire) {
if(formulaire.regagree.checked == true) {formulaire.validation.disabled = false }
if(formulaire.regagree.checked == false) {formulaire.validation.disabled = true }
}
</script>

Et donc avec ça tans que tu coche pas tu peut pas poursuivre et moi je veu juste rajouter cette fontionnalité.

Merci a toi
12 Septembre 2007 15:44:07

je te passe les remarques comme quoi une page, ca doit pouvoir se contrôler au clavier ou à la souris (au choix) :p 
12 Septembre 2007 15:48:12

Je comprend pas ta remarque ^^
a c 232 L Programmation
12 Septembre 2007 15:56:42

onClick :) 
12 Septembre 2007 16:25:54

Rilouko a dit :
Je comprend pas ta remarque ^^


ben imagine qu'un utilisateur utilise le clavier (c'est souvent mon cas) pour cocher la case et changer la liste déroulante... ta page ne fonctionnera pas car tu ne prends en compte que les clics de la souris.

je sais, je m'arrete à des détails (pas si détails que ca d'ailleurs), mais bon...
12 Septembre 2007 20:50:05

ah ok merci! bah... comment resoudre ça pour toi ^^ ?
Merci d'avance :) 
12 Septembre 2007 21:35:38

perso je garderai le onchange
et pour la case à cocher:
  1. <form ... onsubmit="if (!this.regagree.checked) {alert ('faut cocher');return false}">

tu peux le sortir en fonction pour rendre le code plus lisible (bien sur, dans ce cas, il faut pas garder le this)
14 Septembre 2007 20:08:05

Punese j'avais vu ton message hier, pile quand j'ai voulus repondre (au moment d'envoyer) ça m'a mis que idn n'etait plus accessible...
Bref donc la oui je peut te repondre:

Desoler mais j'ai pas compris ce que tu vien de m'expliquer (desoler d'etre embettent mais bon).
Je t'en remerci d'avance

A+ et merci de ton aide precieuse!
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS