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

HTML Discussion :

Lancer un script (action) après le choix d'un select [HTML 5]


Sujet :

HTML

  1. #1
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 259
    Points : 177
    Points
    177
    Par défaut Lancer un script (action) après le choix d'un select
    Bonjour,

    J'ai une liste dans un select et après avoir choisi l'élément avec la liste déroulante, j'aurai voulu lancer un script automatiquement après le choix dans la liste déroulante.
    Cela fonctionne si j'ajoute un bouton submit mais cela m'oblige d'abord à choisir l'élément avec le select PUIS à cliquer sur le bouton. Ce serait plus simple de lancer lors du select seulement...
    Dans le form, j'envoie aussi la valeur d'une variable avec un input de type hidden, à récupérer par mon treatment.pl
    J'ai utilisé la nouvelle propriété HTML5 du SELECT : form='idForm' qui déclenche l'élément form ayant pour id idForm. Cette solution seule ne fonctionne pas.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form action='treatment.pl' method='post' name='topForm' id='topForm'>
    <input type=hidden name='myVal' value='$value'>
    </form>
     
    <select name='top' form='topForm'>
    <option value=10>10</option>
    <option value=20>20</option>
    <option value=30>30</option>
    <option value=40>40</option>
    <option value=50>50</option>
    </select>

    Mais avec un bouton submit cela fonctionne. Je récupère bien la valeur 'myVal' et la variable 'top' dans mon script treatment.pl

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action='treatment.pl' method='post' name='topForm' id='topForm'>
    <input type=hidden name='myVal' value='$value'>
    </form>
     
    <select name='top' form='topForm'>
    <option value=10>10</option>
    <option value=20>20</option>
    <option value=30>30</option>
    <option value=40>40</option>
    <option value=50>50</option>
    <input type=submit>
    </select>

    Y -t-il un moyen sans avoir ce bouton "submit" ?
    Je pourrais un faire un onChange dans le select mais si c'est pour faire du JavaScript, on perd l’intérêt du HTML5.
    Merci.

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 325
    Points
    16 325
    Par défaut
    Citation Envoyé par fabrice91 Voir le message
    Je pourrais un faire un onChange dans le select mais si c'est pour faire du JavaScript, on perd l’intérêt du HTML5.
    Quel est le rapport ? Le HTML 5 n'est toujours pas là pour faire des actions, ça reste un langage de description de données et non un langage de programmation.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 259
    Points : 177
    Points
    177
    Par défaut
    Un élément de type button ou un input de type submit permet bien de lancer une action...et c'est du HTML...
    La balise a avec le href permet également de lancer une action (aller à une url donnée).
    Dans le HTML5 un attribut formaction sur un input de type submit permet de lancer l'url donnée...
    Il aurait pu y avoir un attribut du même genre sur le select pour lancer l'url donnée...

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 887
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 887
    Points : 16 325
    Points
    16 325
    Par défaut
    Réfléchis à la sémantique.

    Un lien lie.
    Un bouton de soumission soumet.
    Un select sélectionne.

    Un select ne peut donc pas soumettre. Tu en détournes le sens sémantique original, donc ça passe par un script.

  5. #5
    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
    Tu confonds plusieurs concepts là.
    HTML, c'est HyperText Markup Langage. Dans cet acronyme, il y a deux éléments : le balisage et la navigation hypertexte. Cela signifie que HTML ne sait faire que deux choses : le balisage d'un document, donc la structuration des données et la navigation entre différents documents.
    Les liens et la validation de formulaires servent à ce second point. Ensuite, au sein d'un formulaire, les éléments ont un rôle précis, en particulier, le rôle d'un select, c'est de modifier la valeur de ce champ à partir d'une liste prédéfinie. C'est tout.
    Si tu veux qu'un élément fasse autre chose, alors il faut du JavaScript et ça ne relève plus de HTML.

  6. #6
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    259
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 259
    Points : 177
    Points
    177
    Par défaut
    Va pour le javascript, merci.
    J'aurais bien aimé un type=submit pour le select, comme sur le input qui permet de réaliser une soumission sur cet élément...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Raspberry Pi] Lancer un script php après démarrage apache/php/mysql
    Par Tonyryu dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 25/07/2014, 11h08
  2. Effectuer une action après le choix d'un fichier
    Par fullmetalkeke dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/06/2013, 18h11
  3. Réponses: 3
    Dernier message: 07/06/2010, 10h33
  4. Réponses: 2
    Dernier message: 30/01/2009, 11h19
  5. Réponses: 3
    Dernier message: 16/12/2005, 15h35

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