IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

formulaire de liens avec envoi automatique


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    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 : 1
    Points
    1
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function choix(val) {
    if (val != "0") 
    {location.href=val;}
    }
    et
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select NAME="my_dest" onChange="choix(this.value)">

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    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

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Fais voir ton nouveau code...

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    Voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ...?

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    Excusez :
    Citation Envoyé par ordidonc Voir le message
    dans les options VALUE ...?
    Je voulais dire dans les INPUT des boutons radio évidemment...

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Non, tu n'as rien à ajouter au HTML, mais il faut faire la redirection après avoir mis à jour l'URL

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    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 : 1
    Points
    1
    Par défaut
    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.

Discussions similaires

  1. [XL-2010] Macro sélection de cellules, copie dans mail avec envoi automatique
    Par Raylooker dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2015, 19h05
  2. Bug sur les liens avec icône automatique
    Par Médinoc dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 25/09/2009, 16h46
  3. envoi automatique d'un formulaire avec un timer
    Par p1xl_01 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/03/2009, 15h44
  4. [MySQL] Formulaire de réservation avec calcul automatique
    Par mluce dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/03/2007, 13h46
  5. Lien avec envoi de valeur sur un bouton flash
    Par Eisy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 31/05/2006, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo