Pour lancer un lien ?!... [Résolu]

Signaler
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous,
Voilà, j'ai un petit souci avec le script suivant : http://www.javascriptfr.com/code.aspx?id=32070
en effet, mon but serait que au lieu que ça m'ouvre une petite "fenêtre" je voudrais que ça me lance un lien...
mais je ne suis encore que débutant, donc si quelqu'un pouvait m'aider...

D'avance merci

FARFADAM

15 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
comme c'est écrit....

<HTML>
<HEAD>
<TITLE>2 Selects dépendants en JavaScript</TITLE>
<script type="text/javascript">
function gensel2()
{ frm.sel2.length=0;
for ( var n=0; n<l1[frm.sel1.selectedIndex].length; n++ )
{ frm.sel2.length++;
frm.sel2.options[frm.sel2.length-1].text =l1[frm.sel1.selectedIndex][n];
frm.sel2.options[frm.sel2.length-1].value=l2[frm.sel1.selectedIndex][n]; } }
</script>
</HEAD>

<form name="frm">
<select size=3
name="sel1"
onchange="gensel2();">
<option>B1</option>
<option>B2</option>
<option>B3</option>
</select>
<select size=3
name="sel2">
</select>
=0)
{ location.href=frm.sel2[frm.sel2.selectedIndex].value; }"
value="Valider"/>
</form>
<script type="text/javascript">
var l1=new Array(
new Array( "B1 L1","B1 L2",
"B1 L3","B1 L4"),
new Array("B2 L1","B2 L2"),
new Array("B3 L1","B3 L1","B3 L3")
); // noms qui apparaissent dans le 2ème select
// chaque ligne new Array correspond aux lignes de 1er select
var l2=new Array(
new Array( "http://lien B1 L1","http://lien B1 L2",
"http://lien B1 L3","http://lien B1 L4"),
new Array( "http://lien B2 L1","http://lien B2 L2"),
new Array( "http://lien B3 L1","http://lien B3 L1","http://lien B3 L3")
); // liens pour le 2ème select
// chaque ligne new Array correspond aux lignes de 1er select
// et sont l'adresse affectée aux lignes du 2ème select
</script>
</HTML>

mon navigateur de prédilection c'est Internet Explorer,
et, pour quelques tests, parfois, j'use du renard de feu.
il y a peut-être des choses que FireFox ne sait pas
faire comme ça, mais "c'est pas loin". Regarder les
erreurs dans la console FF et rectifier => ça marchera
avec IE. [ peut-être remplacer les formulaire.champ
par document.getElementById("id correspondant")
faudrait voir... ]
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
lancer une lien ? : location.href="nom de la page.htm";
je ne sais pas ce qu'est "la petite fenêtre" ?
un pop-up ? ( pas vu la source citée... ).
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Veuillez m'excuser pour ma maladresse mais je ne mis connais pas trop encore...
donc en fait une fois que l'on a selectionné les ce que l'on voulait dans les différentes catégories, ça lance ceci :
<<CODE>select
name=<VAR>"produit"</VAR>
onChange
=<VAR>"alert('Variable retournée : '+this.value)"</VAR>><!-- Ici une simple <VAR>"alert"</VAR> qui retourne la value de notre choix. -->
</code>
donc je veux juste enlever cette "alert" pour à la place pouvoir lancer la page qui correspond au choix fait précédement.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
<
select
name=<VAR>"produit"</VAR>
onChange
=<VAR>"alert('Variable retournée : '+this.value)"</VAR>><!--
this.value c'est déjà faux,
donc il s'agit d'aller sur un site, dont l'adresse
est forunie dans un select ?

<select onchange="location.href=this[this.selectedIndex].value;">
<optgroup label="Choisir un site">
<option value="http://www.javascriptfr.com">JavaScript</option>
<option value="http://marcel-Bultez.chez.Tiscali.fr">Mon site à moi</option>
<option value="http://www.google.fr">google</option>
...
</optgroup>
</select>

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

C'est un début mais c'est pas encore ça...
(je suis vraiment désolé, vous devez penser que je suis vraiment chiant)
donc pour faire simple (je vais essayer) :
On choisi dans la "liste déroulante A" une catégorie, qui ensuite charge (en fonction de la catégorie choisi dans "A") les options (ce qui va lancer la page) dans la "liste déroulante B"

Imaginon plutôt :

liste A : liste B
Boite1--->truc1 (= qui ouvre le lien : www.lienA.fr) / truc2 (= qui ouvre le lien : www.lienN.fr)/
Boite2--->truc36 (= qui ouvre le lien : www.lienK.fr) / truc45 (= qui ouvre le lien : www.lienT.fr)
Boite3--->truc123 (= qui ouvre le lien : www.lienR.fr) / truc568 (= qui ouvre le lien : www.lienP.fr)

Voilà, et merci de l'interet que vous avez porter a mon problème
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ouais, on peut...
1 seule liste serait beaucoup plus simple :

<select onchange="location.href=this[this.selectedIndex].value;">
<optgroup label="Boite 1">
<option value="http://www.truc 11">Truc 11</option>
<option value="http://truc 12">deux</option>
</optgroup>
<optgroup label="Boite 2">
<option value="http://www.truc 21">Truc 21</option>
<option value="http://truc 22">trois</option>
<option value="http://truc 23">4444</option>
</optgroup>
<optgroup label="Boite 3">
<option value="http://www.truc 31">Truc 31</option>
<option value="http://truc 32">cinq</option>
</optgroup>
</select>


s'il faut à tout prix 2 listes, je peux faire exemple....
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Oui, c'est exactement ça que je veux mais il me serait préférable d'avoir deux listes en effet...

Merci énormément pour votre aide (bien précieuse pour un novice comme moi)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
<HTML>
<HEAD>
<TITLE>2 Selects dépendants en JavaScript</TITLE>
<script type="text/javascript">
function gensel2()
{ frm.sel2.length=0;
for ( var n=0; n<l1[frm.sel1.selectedIndex].length; n++ )
{ frm.sel2.length++;
frm.sel2.options[frm.sel2.length-1].text =l1[frm.sel1.selectedIndex][n];
frm.sel2.options[frm.sel2.length-1].value=l2[frm.sel1.selectedIndex][n]; } }
</script>
</HEAD>

<form name="frm">
<select size=3
name="sel1"
onchange="gensel2();">
<option>B1</option>
<option>B2</option>
<option>B3</option>
</select>
<select size=3
onchange="location.href=this[this.selectedIndex].value;"
name="sel2">
</select>
</form>
<script type="text/javascript">
var l1=new Array(
new Array( "B1 L1","B1 L2",
"B1 L3","B1 L4"),
new Array("B2 L1","B2 L2"),
new Array("B3 L1","B3 L1","B3 L3")
); // noms qui apparaissent dans le 2ème select
// chaque ligne new Array correspond aux lignes de 1er select
var l2=new Array(
new Array( "http://lien B1 L1","http://lien B1 L2",
"http://lien B1 L3","http://lien B1 L4"),
new Array( "http://lien B2 L1","http://lien B2 L2"),
new Array( "http://lien B3 L1","http://lien B3 L1","http://lien B3 L3")
); // liens pour le 2ème select
// chaque ligne new Array correspond aux lignes de 1er select
// et sont l'adresse affectée aux lignes du 2ème select
</script>
</HTML>

il y a d'autres solutions...
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Merci c'est parfait,
Merci ENORMEMENT,
juste un dernier petit point (après j'arrête) est-il possible de rajouter un bouton pour lancer le lien ? (au lieu que le lien ce charge directement une fois avoir cliqué dans la liste B, on clique sur le B puis sur un bouton du style "validé")

Merci encore
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ça c'est "assez simple" non ?
...
<select size=3
name="sel2">
</select>
Valider
</form>
on pourrait ( ce serait plus beau ) mettre une image :

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
j'ai oublié qu'il faut tester si le choix est fait.

if ( frm.sel2.selectedIndex>=0)
{ location.href=frm.sel2[frm.sel2.selectedIndex].value; }

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Merci bien mais je le met ou ça ? (ne pourriez-vous pas me remettre le script dans son intégralité ? oui je suis vraiment nul)
pour finir j'ai l'impression que ce n'est pas compatible avec FireFox...
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

PS : je préfère le bouton de type "normal"
Messages postés
46
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
14 mai 2008

Et bien, MERCI !!!!
Un immemse merci, vous m'avez été d'une très très grande aide.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
j'ai eu le temps de tester,
pour que ça fonctionne avec FF ( quelle plaie ... )

=0)
{ window.location.href=frm.sel2[frm.sel2.selectedIndex].value; }"
value="Valider"/>

avec de "bons liens" du style [/ http://www.javascriptfr.com]
par exemple pour tester
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~