Faire varier l'url d'envoi dans "action" d'un formulaire

Signaler
Messages postés
14
Date d'inscription
samedi 18 juin 2005
Statut
Membre
Dernière intervention
15 mars 2007
-
Messages postés
2083
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2020
-
Bonjoutr


Je suis en train de faire une bannière avec un menu déroulant. Chaque valeur de ce menu doit pointer vers une url différente quand on clique sur "OK".


Voilà ce que j'ai tenté de faire mais cela ne fonctionne pas :


<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>




<script language="javascript" type="text/javascript">
//redirection lien
function liens(){


if(document.forms['form'].menu.options[1].selected == true) {
document.forms['form'].action("http://www.google.fr");
document.forms['form'].submit();


}
else if (document.forms['form'].menu.options[2].selected == true){


document.forms['form'].action("http://www.wanadoo.fr");
document.forms['form'].submit();
}


else if (document.forms['form'].menu.options[3].selected == true){


document.forms['form'].action("http://www.yahoo.fr");
document.forms['form'].submit();
}


else if (document.forms['form'].menu.options[4].selected == true){


document.forms['form'].action("http://www.voila.fr");
document.forms['form'].submit();
}


}


</script>


 


dans mon header et dans mon , il y a :


<form name="form" method="post">
<select name="menu">
                                      
<option selected="selected"></option>
<option>choix1</option>
<option>choix2</option>
<option>choix3</option>
<option>choix4</option>


</select>








En fait, aucune action ne se produit quand je sélectionne l'une des options et valider.


De plus, je souhaiterai que le lien s'ouvre dans une nouvelle page : comment faire ?


Merci de votre aide !!


 

9 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

°°mauvaise syntaxe : document.forms['form'].action("http://...");
    document.forms['form'].action="http://...";   ça irait mieux

    IE,FF,K-Melaon,Opera... donnent une erreur de syntaxe, c'est sûr
    avec IE, activer le deboggage, et mieux, télécharger le "Debogger IE"
    avec FF, regarder la "console d'erreurs", et mieux, télécharger "FireBug"

°°ne pas utiliser de mots réservés au html/javascript.
    <form name="form" method="post">
    <form name="formulaire" method="post">

    du coup, donc : document.formulaire.action=("http://...");

°°pourquoi ne pas mettre les url dans les value des options ?
    et au lieu de tester selectedIndex ( autant de tests que de lignes,
        en informatique, faut se poser des questions, il doit y avoir plus simple )
    utiliser
         document.formulaire.menu[document.formulaire.menu.selectedIndex].value
    avec ... <option value="http://www.voila.fr">Voila</option> ...
    par exemple.

°°pourquoi un submit d'un formulaire ?
    un formulaire c'est fait pour envoyer des données ( et je ne parlerais pas
       de onsubmit, qui est fait pour quand on envoie un formulaire, quand
       on clique sur le bouton submit )
    location.href=nouvelle url, ça baigne aussi, par exemple.

°°ai-je tout vu... tout dit ?



<hr />



Cordialement            Bul        
Messages postés
14
Date d'inscription
samedi 18 juin 2005
Statut
Membre
Dernière intervention
15 mars 2007

Merci pour ta réponse..mais je n'ai pas tout saisi

J'ai bien mis la "value" de mes "option" et changer le nom de mon form ...après je n'arrive pas à créer la fonction appropriée pour récupérer cette value :

 dans mon script j'ai mis :

function

liens(){
location.href=document.formulaire.menu.option.[selectedIndex].value;
}

j'ai laissé le reste tel quel...heu ça marche pas !!! Excuse moi mais je ne connais encore pas très bien le javascript !!!

Ah oui !! je voualis savoir comment ouvrir une nouvelle fenêtre avec le lien en question après avoir cliqué sur le bouton...

Merci !
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
5
bien le bonjour, le plus simple c'est de mettre un id à ton select :
<select name="menu" id="select">
    <option selected="selected"></option>
    <option value="http://www.google.fr">choix1</option>
    <option value="http://www.wanadoo.fr">choix2</option>
    <option value="http://www.yahoo.fr">choix3</option>
    <option value="http://www.voila.fr">choix4</option>
</select>

et dans ta fonction lien :
function liens(){
    // récupère le contrôle select
    var sel = document.getElementById("select");
    // ouvre la page selectionnée, si le tag value est renseigné
    if  ( sel.options[sel.selectedIndex].value != "")
        window.open(sel.options[sel.selectedIndex].value, "test");
}

Le truc c'est qu'avec IE, il ouvre une nouvelle fernêtre mais pas avec FF....

[o-_-o]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>

heu ça marche pas





avec ça, je peux répondre,aider... tiens...
    mais... je n'ai pas mis option dans mon exemple !
        ( vérifier, il n'y aurait pas un S ? )
    et le name du formulaire ? il a été changé ?

tu n'as pas lu ou alors pas appliqué...


    avec IE, activer le deboggage, et mieux, télécharger le "Debogger IE"
    avec FF, regarder la "console d'erreurs", et mieux, télécharger "FireBug"

    car là aussi, il y a des erreurs signalées !!!





<hr />



Cordialement        Bul        
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>Le truc c'est qu'avec IE, il ouvre une nouvelle fernêtre mais pas avec FF

ça dépend du paramétrage, dans l'un comme dans l'autre !
perso, je refuse toutes les pop-up, donc window.open ne marche pas
et comme c'est le paramétrage par défaut aujourd'hui... ça marche chez
de moins en moins de personnes.




>>c'est de mettre un id à ton select
je n'aime guère utiliser ça. faut bien parfois, mais j'évite.
et quand on utilise php, pour transmettre, il faut un name, alors...
je préfère document.name du formulaire.name de l'élément
à document.getElementById("id de l'élément")
    chacun ses goûts.





<hr />



Cordialement            Bul        
Messages postés
14
Date d'inscription
samedi 18 juin 2005
Statut
Membre
Dernière intervention
15 mars 2007

Quelqu'un d'autre peut m'aider SVP?
Je ne suis pas développeur et j'ai besoin de quelque chose de simple !!! merci !
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Bon on te mache le code alors... :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<script language="javascript" type="text/javascript">
//redirection lien
function liens()
{
var sites=["http://www.google.fr","http://www.wanadoo.fr","http://www.yahoo.fr","http://www.voila.fr"];
document.formulaire.action=sites[document.formulaire.menu.selectedIndex];
document.formulaire.submit();
}
</script>
<form name="formulaire" method="post">
<select name="menu">
                                     
<option selected="selected"></option>
<option>choix1</option>
<option>choix2</option>
<option>choix3</option>
<option>choix4</option>

</select>

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Pardon... (toujours se relire 2 fois)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<script language="javascript" type="text/javascript">
//redirection lien
function liens()
{
var sites=["http:\/\/www.google.fr","http:\/\/www.wanadoo.fr","http:\/\/www.yahoo.fr","http:\/\/www.voila.fr"];
document.formulaire.action=sites[document.formulaire.menu.selectedIndex];
document.formulaire.submit();
}
</script>
<form name="formulaire" method="post">
<select name="menu">
                                     
<option selected="selected"></option>
<option>choix1</option>
<option>choix2</option>
<option>choix3</option>
<option>choix4</option>


</select>











<hr />



Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
2083
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
15 octobre 2020
1
>>>>>Le truc c'est qu'avec IE, il ouvre une nouvelle fernêtre mais pas avec FF


>>>

ça dépend du paramétrage, dans l'un comme dans l'autre !


>>>

perso, je refuse toutes les pop-up, donc window.open ne marche pas


>>>

et comme c'est le paramétrage par défaut aujourd'hui... ça marche chez


>>>

de moins en moins de personnes.

le window.open n'est bloqué que s'il est considéré comme une 'ouverture automatique" (au chargement de la page par exemple). Si la nouvelle fenetre s'ouvre seulement quand on clique sur un bouton ou un lien, c'est pas bloqué (par les anti-popup tout du moins).

Pour ouvrir le resultat d'un formulaire dans une nouvelle fenetre :
<form action="machin.htm" target="_new">

Flachy Joe