Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2011, 12h44   #1
Invité de passage
 
Homme
Webmaster
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Grèce

Informations professionnelles :
Activité : Webmaster
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Par défaut formulaire de liens avec envoi automatique

Bonjour,

Sur mon site touristique, j'ai installé un formulaire pour choisir une destination par liste déroulante.
En furetant sur le web, j'ai trouvé un code javascript qui me convient parfaitement pour envoyer automatiquement le visiteur sur la page désirée (sans bouton Submit).
Voici le code actuel :
dans la balise Head
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<script language="JavaScript">
 
function choix(form) {
 
var var4=form.my_dest.selectedIndex
 
if (form.my_dest.options[var4].value != "0") 
{location=form.my_dest.options[var4].value;}
 
}
 
</script>
dans la balise Body
Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<form method="get" action="monsite/index.php?dest=plage1" name="send_dest">
 
 <select NAME="my_dest" onChange="choix(this.form)">
 
        <option VALUE="monsite/index.php?dest=plage1">plage 1</option>
 
        <option VALUE="monsite/index.php?dest=plage2">plage 2</option>
 
        <option VALUE="monsite/index.php?dest=plage3">plage 3</option>
 
        <option VALUE="monsite/index.php?dest=plage4">plage 4</option>
 
 </select>

Ce code marche donc bien, mais je voudrais en plus y ajouter une liste radio pour le choix de la langue :
Code html :
1
2
3
4
 
<input checked="checked" name="langue" value="en" type="radio">EN
	<input name="langue" value="fr" type="radio">FR
	<input name="langue" value="it" type="radio">GR

Ma question est donc, quel est le code à ajouter pour passer la langue en GET ? C'est à dire "index.php?langue=en" ou "index.php?langue=fr"

Je précise que la page où se trouve ce formulaire est uniquement en anglais (contrairement aux autres pages du site), donc pas possible de récupérer le paramètre "langue" au premier chargement de la page. Il faudrait donc que le visiteur choisisse la langue par les boutons radio, ce qui aurait pour effet de changer à la volée le formulaire ci-dessus.

Merci de votre aide
ordidonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 17h08   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Citation:
Ce code marche donc bien
Etonnant... je vois mal comment tu atteins ton premier lien
Mais bon, j'imagine que tu as une option dont le value est 0 du type "Sélectionnez votre destination".
Ceci dit, ça marche peut être bien, mais ça peut s'écrire en une seule ligne :
Code :
1
2
3
4
function choix(val) {
if (val != "0") 
{location.href=val;}
}
et
Code html :
<select NAME="my_dest" onChange="choix(this.value)">

Citation:
quel est le code à ajouter pour passer la langue en GET ?
Il faut faire une boucle sur tous les input pour déterminer celui qui est coché :
Code :
1
2
3
4
5
6
7
8
9
var langues = document.getElementsByName('langue'), i = langues.length, langue='fr';
while(i--){
    if(langues[i].checked){
        langue = langues[i].value;
        break;
    }
}
val += '&langue=' + langue;
location.href = val;
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 18h06   #3
Invité de passage
 
Homme
Webmaster
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Grèce

Informations professionnelles :
Activité : Webmaster
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Merci pour la réponse Bovino !

Citation:
Envoyé par Bovino Voir le message
Etonnant... je vois mal comment tu atteins ton premier lien
Mais bon, j'imagine que tu as une option dont le value est 0 du type "Sélectionnez votre destination".
Oui, évidemment j'ai oublié de mentionner cette ligne.

Sinon, je confirme que le code que tu as fourni en une ligne fonctionne bien.

Par contre, j'ai ajouté le reste du code, mais ça n'a pas l'air de fonctionner. La variable langue ne passe pas dans l'url en Get

Y aurait-il une erreur dans le script, par exemple entre langues et langue ?
Je reprécise que ce formulaire n'a pas du tout de bouton Submit, donc après avoir coché la langue, l'envoi est fait uniquement par liste déroulante. Est-ce que ça viendrait de ça ?
Ou alors y a-t-il quelque chose à ajouter dans la partie bouton radio...

Merci
ordidonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 18h31   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Fais voir ton nouveau code...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 19h00   #5
Invité de passage
 
Homme
Webmaster
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Grèce

Informations professionnelles :
Activité : Webmaster
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Voilà :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script language="JavaScript">
 
function choix(val) {
if (val != "0") 
{location.href=val;}
}
var langues = document.getElementsByName('langue'), i = langues.length, langue='fr';
while(i--){
    if(langues[i].checked){
        langue = langues[i].value;
        break;
    }
}
val += '&langue=' + langue;
location.href = val;
 
</script>
et ensuite :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
<form method="get" action="monsite/index.php?dest=plage1" name="send_dest">
 
      choose your language : 	
 
	<input checked name="langue" value="en" type="radio">EN
 
	<input name="langue" value="fr" type="radio">FR
 
	<input name="langue" value="it" type="radio">IT
 
	<input name="langue" value="gr" type="radio">GR
 
 
 <select NAME="my_dest" onChange="choix(this.value)">
 
  <option SELECTED VALUE="0">your destination ?</option>
 
        <option VALUE="monsite/index.php?dest=plage1">plage 1</option>
 
        <option VALUE="monsite/index.php?dest=plage2">plage 2</option>
 
        <option VALUE="monsite/index.php?dest=plage3">plage 3</option>
 
        <option VALUE="monsite/index.php?dest=plage4">plage 4</option>
 
 </select>
 
 
</form>
Si j'ai bien saisi, la variable langue est ajouté à l'url par ce script :
Code :
1
2
val += '&langue=' + langue;
location.href = val;
Donc à priori, je n'ai pas besoin de rajouter quoi que ce soit (javascript, php, etc) dans les options VALUE ...?
ordidonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 19h02   #6
Invité de passage
 
Homme
Webmaster
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Grèce

Informations professionnelles :
Activité : Webmaster
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Excusez :
Citation:
Envoyé par ordidonc Voir le message
dans les options VALUE ...?
Je voulais dire dans les INPUT des boutons radio évidemment...
ordidonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 19h17   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Non, tu n'as rien à ajouter au HTML, mais il faut faire la redirection après avoir mis à jour l'URL
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 19h35   #8
Invité de passage
 
Homme
Webmaster
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Grèce

Informations professionnelles :
Activité : Webmaster
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Attention, parce que mon formulaire est sur la première page du site, mais le lien va sur une autre page, qui n'est pas la même.
Oui, c'est moi qui n'est pas été clair. La première page est monsite/index.php et la seconde (les secondes plutôt, car les pages sont à la volée en php) : monsite/mesplages/index.php
Désolé pour la confusion.

Donc, s'il faut recharger la page SANS Javascript il faut obligatoirement ajouter un bouton Submit, ce que je voudrais éviter si possible.
Sinon, je dois ajouter du code sur la seconde page, mais je voudrais aussi éviter cela.

Alternativement, je dois rendre la première page multilingue par le php. Mais si un petit code Javascript me permet d'éviter des tas de ligne en php avec Isset truc, switch bidule, Get machin et include chouette, tant mieux.
ordidonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h12.


 
 
 
 
Partenaires

Hébergement Web