begin process at 2010 03 16 17:25:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Autre

 > 

Recuperer la valeur d'une combobox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recuperer la valeur d'une combobox

lundi 4 juin 2007 à 08:11:46 | Recuperer la valeur d'une combobox

maleo83

Bonjour, une question toute bète (j'ai même honte de la poser) :

J'ai une combobox, dont je veux envoyer la valeur d'index du champ selectionné
à une fonction javascript. Voici mon code 

<SELECT name="personnel2" style="FONT-SIZE: xx-small; HEIGHT: 17px" onchange="traitement(this.SelectedIndex)">
   <OPTION selected> </OPTION> 
   <OPTION value="Finances">finances</OPTION>  
   <OPTION value="Moyens généraux">Moyens généraux</OPTION> 
   <OPTION value="Division instruction">Division instruction</OPTION>
</SELECT> 

Lorsque je fais afficher la valeur envoyée a la fonction le résultat est : Undefined

Merci de m'aider.

maleo83
lundi 4 juin 2007 à 11:29:38 | Re : Recuperer la valeur d'une combobox

jesusonline

Membre Club Administrateur CodeS-SourceS
je redirige sur javascriptfr.com


Cyril - MSP - MCTS ASP.net & SQL
lundi 4 juin 2007 à 11:52:46 | Re : Recuperer la valeur d'une combobox

Zobibol

Bonjour la réponse toute bête ;o)

Il faut mettre selectedIndex et non pas SelectedIndex ( et hop ... magique )
les propriétés commencent toujours par des minuscules.

[o-_-o]
jeudi 31 janvier 2008 à 12:54:36 | Re : Recuperer la valeur d'une combobox

geve2007

Bonjour,
J'ai beaucoup cherché sur le site avant de poser la question, mais comme je débute en Javascript, j'ai probablement dû mal chercher... désolé...

Voici mon p'tit problème :

J'ai une liste de noms de départements dans une liste de formulaire. La valeur de chaque option de la liste c'est le numéro du département. Le texte affiché pour chaque département est le nom du département.

Dans un champ au dessus de cette liste, l'utilisateur indique son code postal.
Je voudrais pouvoir modifier dynamique le 'selected' de la liste des départements une fois que je connais le numéro de ce département, histoire que la liste soit déjà sélectionné sur le bon département une fois le code postal connu.

Je n'ai trouvé que la manière de modifier l'élément sélectionné de la liste par rapport à son numéro d'index, et non par rapport à la valeur de l'option.

Voici le malheureux bout de code que j'ai réussi à pondre. Je suis confondu de honte :

function ChoixDepartement()
{
 var cp = document.getElementById('cp').value;
 var num_depart = cp.substring(0,2);
 num_depart = parseInt(num_depart);
 //alert(num_depart);
 document.form1.id_departements.options[num_depart].selected=true;
 
}

Bien sûr, j'ai mis un onchange=ChoixDepartement()" sur le champ qui déclenche la fonction. Dans l'exemple du dessus, j'arrive bien à récupérer la bonne valeur dans num_depart, mais comme il correspond pas à l'option...

Je vais m'acheter un bon bouquin sur Javascript, histoire de ne plus poser de questions aussi nulles, mais bon... si une bonne âme pouvait m'aiguiller, cela serait sympa.

A+
jeudi 31 janvier 2008 à 13:08:59 | Re : Recuperer la valeur d'une combobox

Zobibol

Salut,
Tu n'as pas avoir honte de ton code, il est sympa et en plus tout bleu...
ceci te conviendrait-il mieux ?
<html>
    <head>
        <title>
        </title>
        <script>
        function ChoixDepartement(_obj)
            {
             var cp = _obj.value;
             if ( cp != null){
                 var num_depart = cp.substring(0,2);
                 num_depart = parseInt(num_depart);
                 var myCombo = document.getElementById('myCombo');
                 if ( num_depart-1 < myCombo.options.length)
                     myCombo.options[num_depart-1].selected=true;
            }
             
            }
        </script>
    </head>
    <body>
        <input type="text" onchange="ChoixDepartement(this)" />
        <select id="myCombo">
            <option value="01">Ain</option>
            <option value="02">Aines</option>
            <option value="03">Allier</option>
            <option value="04">4</option>
            <option value="05">5</option>
            <option value="06">6</option>
            <option value="07">7</option>
        </select>
    </body>
</html>

désolé pour les départements ça me gonflait de tous me les taper ;o)

[o-_-o]
jeudi 31 janvier 2008 à 14:13:40 | Re : Recuperer la valeur d'une combobox

geve2007

Un grand merci, Zobibol : ton code m'a enfin permis de trouver le problème.
J'ai testé ce que tu m'as envoyé (super sympa de m'avoir consacré du temps) et pourtant cela ne marchait pas tout le temps.
C'est le "tout le temps" qui m'a fait comprendre. Parce qu'un programme, hein, ça marche ou ça marche pas.

Figure-toi que nos braves dirigeants (qui ne se soucient guère du sort des pôvres programmeurs) on sucré tout bonnement le département n° 20. A la place, on a droit au 2A et au 2B pour la Corse. Faut toujours qu'ils se distinguent, ceux-là ;-)

Du coup, la recherche par indice se trompe au dessus de 19 (vu qu'on saute direct au 21...), puis de nouveau au dessus de 29 (dans un classement par numéro de département, le 2A arrive après le 29).

J'ai corrigé mon code en conséquence. Et pour ceux qui souhaitent récupérer la liste des départements (avant qu'Attali ne fasse tout pêter...), la voici, la voilà :

function ChoixDepartement(_obj)
{
 
 var cp = _obj.value;
 
 if ( cp != null)
 {
  var num_depart = cp.substring(0,2);
  num_depart = parseInt(num_depart);
  alert(num_depart);
  var id_departements = document.getElementById('id_departements');
  if ( num_depart-1 < id_departements.options.length)
  {
   if(num_depart>19 && num_depart<29) num_depart=num_depart-1;
   if(num_depart>29) num_depart=num_depart+1;
   id_departements.options[num_depart].selected=true;
  }
 }
 
}


<option value="">Faites un choix</option>
		<option value="01">Ain</option>
		<option value="02">Aisne</option>
		<option value="03">Allier</option>
		<option value="04">Alpes de Haute-Provence</option>
		<option value="05">Hautes-Alpes</option>
		<option value="06">Alpes-Maritimes</option>
		<option value="07">Ardêche</option>
		<option value="08">Ardennes</option>
		<option value="09">Ariège</option>
		<option value="10">Aube</option>
		<option value="11">Aude</option>
		<option value="12">Aveyron</option>
		<option value="13">Bouches-du-Rhône</option>
		<option value="14">Calvados</option>
		<option value="15">Cantal</option>
		<option value="16">Charente</option>
		<option value="17">Charente-Maritime</option>
		<option value="18">Cher</option>
		<option value="19">Corrèze</option>
		<option value="21">Côte-d'Or</option>
		<option value="22">Côtes d'Armor</option>
		<option value="23">Creuse</option>
		<option value="24">Dordogne</option>
		<option value="25">Doubs</option>
		<option value="26">Drôme</option>
		<option value="27">Eure</option>
		<option value="28">Eure-et-Loir</option>
		<option value="29">Finistère</option>
		<option value="2A">Corse-du-Sud</option>
		<option value="2B">Haute-Corse</option>
		<option value="30">Gard</option>
		<option value="31">Haute-Garonne</option>
		<option value="32">Gers</option>
		<option value="33">Gironde</option>
		<option value="34">Hérault</option>
		<option value="35">Île-et-Vilaine</option>
		<option value="36">Indre</option>
		<option value="37">Indre-et-Loire</option>
		<option value="38">Isère</option>
		<option value="39">Jura</option>
		<option value="40">Landes</option>
		<option value="41">Loir-et-Cher</option>
		<option value="42">Loire</option>
		<option value="43">Haute-Loire</option>
		<option value="44">Loire-Atlantique</option>
		<option value="45">Loiret</option>
		<option value="46">Lot</option>
		<option value="47">Lot-et-Garonne</option>
		<option value="48">Lozère</option>
		<option value="49">Maine-et-Loire</option>
		<option value="50">Manche</option>
		<option value="51">Marne</option>
		<option value="52">Haute-Marne</option>
		<option value="53">Mayenne</option>
		<option value="54">Meurthe-et-Moselle</option>
		<option value="55">Meuse</option>
		<option value="56">Morbihan</option>
		<option value="57">Moselle</option>
		<option value="58">Nièvre</option>
		<option value="59">Nord</option>
		<option value="60">Oise</option>
		<option value="61">Orne</option>
		<option value="62">Pas-de-Calais</option>
		<option value="63">Puy-de-Dôme</option>
		<option value="64">Pyrénées-Atlantiques</option>
		<option value="65">Hautes-Pyrénées</option>
		<option value="66">Pyrénées-Orientales</option>
		<option value="67">Bas-Rhin</option>
		<option value="68">Haut-Rhin</option>
		<option value="69">Rhône</option>
		<option value="70">Haute-Saône</option>
		<option value="71">Saône-et-Loire</option>
		<option value="72">Sarthe</option>
		<option value="73">Savoie</option>
		<option value="74">Haute-Savoie</option>
		<option value="75">Paris</option>
		<option value="76">Seine-Maritime</option>
		<option value="77">Seine-et-Marne</option>
		<option value="78">Yvelines</option>
		<option value="79">Deux-Sèvres</option>
		<option value="80">Somme</option>
		<option value="81">Tarn</option>
		<option value="82">Tarn-et-Garonne</option>
		<option value="83">Var</option>
		<option value="84">Vaucluse</option>
		<option value="85">Vendée</option>
		<option value="86">Vienne</option>
		<option value="87">Haute-Vienne</option>
		<option value="88">Vosges</option>
		<option value="89">Yonne</option>
		<option value="90">Territoire-de-Belfort</option>
		<option value="91">Essonne</option>
		<option value="92">Hauts-de-Seine</option>
		<option value="93">Seine-Saint-Denis</option>
		<option value="94">Val-de-Marne</option>
		<option value="95">Val-d'Oise</option>
		<option value="971">Guadeloupe</option>
		<option value="972">Martinique</option>
		<option value="973">Guyane</option>
		<option value="974">La Réunion</option>

(Faudra que je corrige aussi pour les DOM-TOM...)
jeudi 31 janvier 2008 à 14:25:25 | Re : Recuperer la valeur d'une combobox

Zobibol

Si je puis me permettre une nouvelle modification qui fera que terminé les problèmes de la corse (enfin, si  je puis dire) et des dom-Tom:
        function ChoixDepartement(_obj)
            {
             var cp = _obj.value;
             if ( cp != null){
                 var num_depart = cp.substring(0,2);
                 var myCombo = document.getElementById('myCombo');
                 var l = myCombo.options.length;
                // Parcours la liste des options
                 for (var i=0; i < l; i++){
                         // Si la valeur de l'option est identique au numéro du département alors on selectionne et s
                         if ( myCombo.options[i].value == num_depart){
                             myCombo.options[i].selected=true;
                             break;
                         }
                 }
            }
        }
ne serais-ce point plus propre ?



[o-_-o]
jeudi 31 janvier 2008 à 14:35:55 | Re : Recuperer la valeur d'une combobox

Zobibol

Et je remets l'couvert ;o)
        function ChoixDepartement(_obj)
            {
             var cp = _obj.value;
             if ( cp != null){
                 var dep = cp.substring(0,2);
                 var dtdep =cp.substring(0,3);
                 var myCombo = document.getElementById('myCombo');
                 var l = myCombo.options.length;
                 for (var i=0; i < l; i++){
                         var val =  myCombo.options[i].value;
                         if ( val== dep || val == dtdep){
                             myCombo.options[i].selected=true;
                             break;
                         }
                 }
            }
        }
et voilà maitenant tu prends en compte tous les départements ( outre mer, corse...)

[o-_-o]
jeudi 31 janvier 2008 à 14:49:57 | Re : Recuperer la valeur d'une combobox

geve2007

Alors, là, chapeau...

J'espère que cette fonction servira à beaucoup, car j'avais rien trouvé sur le web, et pourtant j'ai fait chauffer le père Google.

 SUPER et UN GRAND MERCI !!!  


Cette discussion est classée dans : combobox, fonction, recuperer, valeur


Répondre à ce message

Sujets en rapport avec ce message

recuperer une valeur javascript en asp [ par trialrofr ] Bonjour voici mon pb je voudrais recuperer dans ma page2.asp les valeurs des names des balises à savoir "em1" et "em2" mais cela ne marche pas; j'ai recuperer valeur liste deroulante [ par rich25200 ] bonjourj'ai une liste deroulante masi qui n'est pas entre une balise form...comment je peux faire pour récupérer la valeur que j'ai choisi??merci.. liste grisée en fonction de la valeur d'une autre liste [ par zincben ] bonjour, je commence en php, javascript, et je veux générer un formulaire en php, avec un javascript qui grise ma 2nde liste quand la 1ère prend une c peut on recuperer la valeur select [ par Cisaks ] bonjour,voilà, je voulais savoir si on pouvait récupérer la valeur sélectionner sans pour autan avoir 'value' ex: first second</op variable [ par benjiman2 ] Bonjour !voila , je voudrais recuperer la valeur d'un champs d'un formulaire à partir d'une iframe :Exemple :Page.php :<iframe src='ok.php'&g input hidden, fonction et redirection [ par needle ] Salut a tous alors voila j'expose mon probleme: J'ai dans une page web (générée en php) un input de type hidden avec comme value, disons, "toto est i Parametre avec valeur par defaut [ par danounouche ] Bonjour je souhaite ecrire une fonction qui recoit deux parametres et que le dernier recoive en valeur par defaut le texte "text".Comment dois-je ecri Problème Fonction Date() [ par padam90 ] Bonjour, j'utilise une fonction Javascript pour formater une date et la modifier. Or les fonctions de date ne me renvoient pas la valeur voulue ! Récuperer une variable php grâce a une fonction php appelé dans un onclick d'un bouton formulaire [ par Maiku ] BonjourJe cherche a recuperer une variable php grâce a une fonction php appelé dans un onclick d'un bouton, je valide mon formulaire via le javascript [DOM]Conserver une valeur après ajout d'un child [ par malalam ] Hello,le titre n'est pas super clair parce que je ne savais pas comment résumer.J'appelle une fonction sur un évènement (onchange d'un select : bref,


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales