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 :

Comment lire un "name" d'un menu déroulant ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut Comment lire un "name" d'un menu déroulant ?
    Bonjour à tous,

    Je ne comprends pas trop le php et par sécurité, j'utilise et adapte des exemples récupérés à droite et à gauche.

    Il y a qq temps, Julp (ProgOtoP) m'avait donné l'astuce pour détecter la valeur sur une sélection de plusieurs boutons radios.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="Radio" name="moteur" value="Moteur"> Moteur de recherche<br />
    <input type="Radio" name="moteur" value="Lien"> Lien de site<br />
    <input type="Radio" name="moteur" value="Relation"> Relation<br />
    Ca fonctionne très bien, mais je voulais savoir comment faire pour un menu déroulant.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select name="motif">
    	<option value="">--- Votre choix ---</option>
    	<option value="renseignements"> Renseignements</option>
    	<option value="support_technique"> Support Technique</option>
    	<option value="lien_mort"> Lien Mort</option>
    	<option value="partenariat"> Partenariat</option>
    </select>
    Je demande ça parce que je n'arrive pas à détecter le menu déroulant.

    Comme c'est pour un contact, se serait bien de pouvoir le faire avec ça, sinon, il faudrait que je refasse des boutons radio... et c'est pas très convivial !

    Pourriez-vous m'aider ?

    Merci d'avance.

    Cordialement, JLB59

  2. #2
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    Qu'appelle tu "détecter"?
    Si tu fait un $_POST['modif'], tu devrais récupérer la valeur de l'option sélectionnée, mai sbon je ne susi pas sûr que ce soit ça que tu veux

  3. #3
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par haltabush
    Qu'appelle tu "détecter"?
    Si tu fait un $_POST['modif'], tu devrais récupérer la valeur de l'option sélectionnée, mai sbon je ne susi pas sûr que ce soit ça que tu veux
    Le mieux je pense est que je mette le script pour la détaction
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <script language="JavaScript" type="text/javascript">
    <!--
    function formCheck(formobj){
    	var fieldRequired = Array("nom", "mail", "profession", "moteur", "precision", "motif", "sujet", "message");
    	var fieldDescription = Array("Votre nom", "Votre mail", "Votre profession", "Comment avez-vous connu ce site", "Précisez", "Motif choisi", "Sujet du message", "Votre message");
    	var alertMsg = "Veuillez compléter les champs suivants qui sont obligatoires avant d'envoyer!\n";
     
    	var l_Msg = alertMsg.length;
     
    	for (var i = 0; i < fieldRequired.length; i++){
    		var obj = formobj.elements[fieldRequired[i]];
    		if (obj){
    			switch(obj.type){
    			case "select-one":
    				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
    					alertMsg += " - " + fieldDescription[i] + "\n";
    				}
    				break;
    			case "select-multiple":
    				if (obj.selectedIndex == -1){
    					alertMsg += " - " + fieldDescription[i] + "\n";
    				}
    				break;
    			case "text":
    			case "textarea":
    				if (obj.value == "" || obj.value == null){
    					alertMsg += " - " + fieldDescription[i] + "\n";
    				}
    				break;
    			default:
    			}
    			if (obj.type == undefined){
    				var blnchecked = false;
    				for (var j = 0; j < obj.length; j++){
    					if (obj[j].checked){
    						blnchecked = true;
    					}
    				}
    				if (!blnchecked){
    					alertMsg += " - " + fieldDescription[i] + "\n";
    				}
    			}
    		}
    	}
     
    	if (alertMsg.length == l_Msg){
    		return true;
    	}else{
    		alert(alertMsg);
    		return false;
    	}
    }
    // -->
    </script>
    Ne me demande pas d'explication sur ça parce que je n'y comprends pas grand-chose, mais ça marche, pour les btn radio en tout cas.

    Pour le formulaire il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="./index.php?page=9&amp;id=Result_Contact" name="formcheck" onsubmit="return formCheck(this);">
    Je mets pas le reste because c'est simplement les champs.
    Mais il y a une partie des champs cités dans mon précédent post (boutons radio et select (pour le menu déroulant).

    Ton astuce me semble très bien mais je ne crois pas être suffisamment performant pour l'adapter.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 667
    Par défaut
    tu veux autoriser l'envoi du formulaire seulement si une valeur à été choisie dans le menu déroulant, c'est ça ?

  5. #5
    Membre éprouvé
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    1 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 1 024
    Par défaut
    Citation Envoyé par mathieu
    tu veux autoriser l'envoi du formulaire seulement si une valeur à été choisie dans le menu déroulant, c'est ça ?
    C'est exactement ce que je voudrais faire.

    J'aurais du faire cette précision dès le départ, non ?

  6. #6
    Membre émérite Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Par défaut
    Oui
    Et du coup, c'est du Javascript et pas du PHP.

    edit :
    je pense avoir trouvé le truc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    case "select-one":
    				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].TEXT == ""){
    					alertMsg += " - " + fieldDescription[i] + "\n";
    				}
    				break;
    doit devenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    case "select-one":
    				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].VALUE == ""){
    					alertMsg += " - " + fieldDescription[i] + "\n";
    				}
    				break;
    Ceci dit, ça change totalement le comportement de la fonction : au lieu d'afficher un message d'alerte si l'utilisateur fait un choix où il n'y a pas de texte, elle l'affichera seulement si l'option est vide... Il faut voir si tu as d'autres select où le comportement de la fonction ne doit pas changer.
    Tiens nous au courant...

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

Discussions similaires

  1. [AC-2000] lire la saisie en cours dans un menu déroulant
    Par nico84 dans le forum IHM
    Réponses: 2
    Dernier message: 03/05/2012, 19h12

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