Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Compter le nombre de données dans un select [ CSS / Général ] (nougitch)

mardi 14 août 2007 à 09:22:55 | Compter le nombre de données dans un select

nougitch

Bonjour,

J'aimerais savoir s'il est possible de connaître le nombre de données contenues dans un select (le nombre de choix proposé à l'utilisateur), ce de manière dynamique.

Merci par avance.

mardi 14 août 2007 à 10:51:26 | Re : Compter le nombre de données dans un select

the_wwt

Bonjour,
Tu récupères ton objet select via son id, puis tu lit l'attributs length du tableau des options:
alert( "Il y a " + document.getElementById("monSelect").options.length + " options ;-)") ;

Cdlt,
Pierrick

mardi 14 août 2007 à 12:52:38 | Re : Compter le nombre de données dans un select

nougitch

Salut Pierrick,

Merci pour ta réponse.
Seulement, j'utilise deux select qui se vide et remplisse dynamiquement.

Je te glisse mon code, peux-tu me dire stp comment faire un sorte que le "12" et le "0" (respectivement, le nombre de données dans la liste de gauche et de droite) changent dès que l'on modifie l'une des deux listes.

Merci beaucoup par avance.

<HTML>
<HEAD>
<TITLE>Select</TITLE>
<script type="text/javascript">
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function retirer()  //~~ retirer de l'autre select ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{  if ( sel3.selectedIndex >=0 )
  {  saisie.value=sel3[sel3.selectedIndex].text;
    {for (var n=sel3.selectedIndex;n<sel3.length-1;n++)
      { sel3[n].text=sel3[n+1].text; }
    sel3.length--;  }
    ajout(4);  }  }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function ajouter()  //~~ transférer vers autre select ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{  if ( sel.selectedIndex >=0 )
  {  sel3.length++;
    sel3[sel3.length-1].text=sel[sel.selectedIndex].text;
    supprime();    }  }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function choix(liste)  //~~ choix d'une ligne ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{  saisie.value=liste[liste.selectedIndex].text;
  var i=liste.selectedIndex;
  sel.selectedIndex=i;
  sel2.selectedIndex=i;    }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function supprime() //~~ suppression d'une ligne ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ if (sel.selectedIndex>=0)
  {for (var n=sel.selectedIndex;n<sel.length-1;n++)
        { sel[n].text=sel[n+1].text; }
    sel.length--;
    sel2.length--;  }  }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function deplace(sens)  //~~ déplacer une ligne ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{ if (sel.selectedIndex+sens>=0 && sel.selectedIndex+sens<sel.length)
     {  var t=sel[sel.selectedIndex+sens].text;
    sel[sel.selectedIndex+sens].text=sel[sel.selectedIndex].text;
    sel[sel.selectedIndex].text=t;
    sel.selectedIndex=sel.selectedIndex+sens;  }  }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function ajout(appel)   //~~ ajout d'un ligne ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{  var adr;
  switch (appel) {
    case 0:  //__ en tête __
      adr=0;
      break;
    case 1:  //__ avant __
      if (sel.selectedIndex<0)  return;
      adr=sel.selectedIndex;
      break;
    case 2:  //__ après __
      if (sel.selectedIndex<0)  return;
      adr=sel.selectedIndex+1;
      break;
    case 3:  //__ en fin __
      adr=sel.length;
      break;
    case 4:  //__ par ordre alphabétique __
      position(saisie.value);
      adr=sel.selectedIndex;
      break;    }
  sel.length++;
  for (var n=sel.length-1;n>adr;n--)
      { sel[n].text=sel[n-1].text;  }
  sel[adr].text=saisie.value;
  sel.selectedIndex=adr;
  sel2.length++;
  sel2[sel2.length-1].text=sel2.length;
  sel2.selectedIndex=adr;     }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function chgt(avant,apres,zone)  //~~ remplacer caractères génants ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{  var reg=new RegExp(avant,"g");
  return zone.replace(reg,apres);  }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function position(rch)  //~~ rechercher ~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
{   var tmp=rch.toLowerCase();
  tmp=chgt("[àäâ]","a",tmp);    // les accents posent
  tmp=chgt("[éèêë]","e",tmp);    // un problème de
  tmp=chgt("[ïî]","i",tmp);        // classement : en ASCII
  tmp=chgt("[ôö]","o",tmp);      // ils sont "après" la lettre
  tmp=chgt("[ùûü]","u",tmp);      // "z". le moins et l'espace
  tmp=chgt("[- ]","",tmp);        // sont ignorés.
  var pos;
  for (var n=0;n<sel.length;n++)
      {  pos=sel[n].text.toLowerCase();
      pos=chgt("[àäâ]","a",pos);
      pos=chgt("[éèêë]","e",pos);
      pos=chgt("[ïî]","i",pos);
      pos=chgt("[ôö]","o",pos);
      pos=chgt("[ùûü]","u",pos);
      pos=chgt("[- ]","",pos);
      if ( pos >= tmp )
      {   sel.selectedIndex=n;
        n=sel.length;  }  }  }
</script>
</HEAD>
<BODY>
<form name="test">
<input type="hidden" name="saisie" id="saisie">
<center>Rechercher <input type="text" name="rech" onkeyup="position(this.value);"><br><br>
<table>
 <tr>
  <td>
  <select name="sel" id="sel" onclick="choix(this);" onchange="choix(this);" size="10" style="width: 180px;">
   <option>Société Générale</option>
   <option>BNP Paribs</option>
   <option>Crédit Agricole</option>
   <option>Crédit Lyonnais</option>
   <option>Banque Populaire</option>
   <option>Caisse d'Epargne</option>
   <option>Barclays</option>
   <option>ABN Amro</option>
   <option>JP Morgan</option>
   <option>Goldman Sachs</option>
   <option>Merril Lynch</option>
   <option>Morgan Stanley</option>
  </select>
  <br>12 donnée(s)
  <script type="text/javascript">
  var sel=document.getElementById("sel");
  var saisie=document.getElementById("saisie");
  </script>
  </select>
  </td>
  <td>
  <input type="button" value=">>" onclick="ajouter();"><br><br>
  <input type="button" value="<<" onclick="retirer();">
  </td>
  <td>
  <select name="sel3" id="sel3" size="10" style="width: 180px;"></select>
  <br>0 donnée(s)
  <SCRIPT LANGUAGE="JavaScript">
  var sel3=document.getElementById("sel3");
  </SCRIPT>
  </td>
 </tr>
</table>
</form>
<SCRIPT LANGUAGE="JavaScript">
alert( "Il y a " + document.getElementById("sel").options.length + " options ;-)") ;
</SCRIPT>
</center>
</BODY>
</HTML>

mardi 14 août 2007 à 15:54:27 | Re : Compter le nombre de données dans un select

the_wwt

Salut,
disons que ton code n'est pas top top... En pus je ne me prononce pas sous sa compatibilité avec IE.
En effet avec IE pour ajouter des options dynamiquement il faut créer un objet Option.
sel.options[ i ] = new Option("valeur", "text", false, false);

Après pour le nombre de valeurs, a chaque fois tu ajoute ou supprime tu met à jours un champs de type span ou div.

<span id="sel3Length">0</span> données.

function ajouter(){
......
.....
document.getElementById("sel3Length").innerHTML = sel3.options.length;
}

Cdlt,
bon courage,
PS: tu peux trouver des dizaines d'exemples ici ou ailleurs.
Pierrick



Cette discussion est classé dans : nombre, données, select, compter


Répondre à ce message

Sujets en rapport avec ce message

Nombre de Lignes d'un SELECT [ par DeathAngel ] Bonjour à tous.J'ai une question toute con à vous poser : Y a-t-il un moyen de limiter le nombre de lignes affichées dans un ?Exemple : J'ai 250 lign Comment compter le Nombre de telechargement ? [ par yannickty ] J ai savoir si un script existe pour faire apparaitre , comme on le voit sur les sites , le nombre de telechargement d un fichier.merci de votre répon Afficher le nombre de jour d'un mois en fonction du mois selectionne [ par Monico9385 ] Bonjour tout le monde, alors voila mon probleme: j'ai 2 select, un contenant les mois numerotés de 01 à 12, et un autre contenant les jours numéroté Liste déroulante et onChange [ par sebalex ] Bonjour à tous,J'ai dans le même formulaire un Select reprenant les données d'une BD ainsi que plusieurs Input Type Texte. Je souhaite que lorsque je compter le nombre de mot d'une ligne [ par aimie ] Bonjour !!je voudrais savoir comment accéder à une ligne d'un textarea afin de compter le nombre de mot.En effet, je parviens à compter le nombre de m Select dynamique [ par mandaillou ] SalutJ'ai un champ select qui est rempli dynamiquement.Je voudrais que le nombre de lignes qu'il affiche (attribut size) corresponde au nombre d'items Compter le nombre de fichiers dans un repertoire et ses sous-repertoires [ par oclock ] Bonjour à tous, Je voudrais que vous m'aidiez, la fonction ci-dessous me permet de compter le nombre de fichiers présents dans le repertoire de nom " Compter le nombre de caractère [ par Titrax ] Salut quelqu'un aurait la méthode pour compter le nombre de caractère (en temps reel) que l'on met dans un textarea. MErci d'avance. Compter le nombre de changement d'un checkbox [ par Ekik ] Bonjour, Voila, je dois faire un script qui compte le nombre de changements d'un checkbox et l'envoyer via un champ caché. Pour le moment j'ai ceci : compter le nombre de div ayant pour class madiv [ par 64nemesis ] Bonjour à tous je souhaiterai faire une toute petite fonction qui ma permettrait dans une page donnée de compter le nombre de Divs ayant pour class "m


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.