Multiselection select

Multiselection select - HTML/CSS - Programmation

Marsh Posté le 14-12-2003 à 13:54:27    

Voilà j'ai un problème ...
 
Je génére dynamique une liste "select" multiple dont certains éléments sont préselectionné ...
 
Et j'aimerais que la liste ne s'affiche pas tout au début ...
C'est à dire que j'aimerais que la liste soit centrer (affiche) le dernier élement séléctionné dans la liste.

Reply

Marsh Posté le 14-12-2003 à 13:54:27   

Reply

Marsh Posté le 14-12-2003 à 15:32:02    

vouaip ben faut tester si la variable est egale a la variable du select.
 
je te met un bout de script mùais j'ai la flemme de l'expliqué :D
j'espere que tu comprendra
 

Code :
  1. $SelectTV=mysql_query("select AddedBy, Address, Name, Subcat from bdb_forums where Validated='0'" );
  2.   $h=0;
  3.   while ($ShowToV=mysql_fetch_row($SelectTV))
  4.    {
  5.     $h++;
  6.     echo "<tr><td>Added by {$ShowToV[0]}</td>".
  7.     form("hidden", "h", $h).
  8.     "<td>".url($ShowToV[1], $ShowToV[2], "_blank", "" )."</td>".
  9.     form("hidden", "link$h", $ShowToV[1]).
  10.     "<td><select name=\"catsub$h\">";
  11.     //show all cat and select the actual one
  12.     $ShowAllCat=mysql_query("select Name, Category from bdb_subcat" );
  13.     while ($ShowCat=mysql_fetch_row($ShowAllCat))
  14.      {
  15.         if ($ShowToV[3]==$ShowCat[0])
  16.          $select="selected";
  17.         else $select="";
  18.         echo "<option $select>{$ShowCat[1]} -> {$ShowCat[0]}</option>";
  19.      }
  20.     echo "</select></td>".
  21.     "<td>".form("checkbox", "val[]", $h)."</td></tr>";
  22.    }


Message édité par Profil supprimé le 14-12-2003 à 15:32:29
Reply

Marsh Posté le 14-12-2003 à 17:57:17    

Whoua du php ...
 
En fait, je vais mieux expliquer :
 
Voilà g une page avec une liste de multiséléction, dont certain élément sont séléctionné.
L'utilisateur clique sur la touche "Control" et rajoute d'autre "OPTION" à la séléction.
Et hop ! Il envoie le formulaire.
 
Mon problème vient de là :  
Quand il revient sur cette même page après avoir envoyer le formulaire, dans la liste de multiselection, il y a bien tout les éléments qu'il a voulu gardé de sélectionné (généré dynamiquement à partir des données du formulaires entre autres) MAIS la liste est centré sur le debut de la liste, l'index 0.
 
Ce que je veux c'est que la liste centre son affichage sur le dernier élément séléctionné de la liste par l'utilisateur et non revenir à l'index=0 de la liste.


Message édité par Shogun2002 le 14-12-2003 à 17:58:53
Reply

Marsh Posté le 14-12-2003 à 18:00:58    

je ne vois pas trop ce que tu entend pas "centrer" .....
 
du reste .. tes données proviennent d'ou ? un tableau ? .....alors lis le a l'envers


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 14-12-2003 à 19:47:07    

Un exemple je génére dynamique une liste en html du type

Code :
  1. <select size=4>
  2. <option selected>1</option>
  3. <option selected>2</option>
  4. <option>3</option>
  5. <option selected>4</option>
  6. <option>5</option>
  7. <option>6</option>
  8. <option selected>7</option>
  9. </select>


 
Remarquez bien que la taille est de 4, donc quand la page est générer on voit les 4 premiers éléments.
 
Disons que l'utilisateur rajoute dans la séléction la valeur 6 : on auras de générer :

Code :
  1. <select size=4>
  2. <option selected>1</option>
  3. <option selected>2</option>
  4. <option>3</option>
  5. <option selected>4</option>
  6. <option>5</option>
  7. <option selected>6</option>
  8. <option selected>7</option>
  9. </select>


 
MAIS lors du rechargement de la page, il faudra que l'utilisateur utilise le scrollbar de la liste pour constater que l'élément 6 a bien été sélectionné.
 
Moi je veux que la liste affiche (se positionne) sur la valeur 6, que l'utilisateur n'utilise pas la scrollbar.
 
NB :Les éléments séléctionné sont stocké dans un objet en Java


Message édité par Shogun2002 le 14-12-2003 à 19:47:33
Reply

Marsh Posté le 15-12-2003 à 09:18:12    

Personne qui peut m'aider ?

Reply

Marsh Posté le 15-12-2003 à 14:03:18    

Personne ne sait ?

Reply

Marsh Posté le 15-12-2003 à 14:09:51    

visiblement non :/ .....
 
tu peux pas le faire en format texte a côté ... genre .  
"Derniere sélection : 6"


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 15-12-2003 à 15:09:12    

Il existe rien en javascript qui permet de positionner le scrollbar de la liste ?

Reply

Marsh Posté le 15-12-2003 à 15:31:03    

si : document.tonformulaire.elements[0].selectedIndex = tonindex

Reply

Marsh Posté le 15-12-2003 à 15:31:03   

Reply

Marsh Posté le 15-12-2003 à 15:44:11    

ouai ... ça va pas interferer avec les péselections ?
Ou il faut aussi que je reppasse "une couche" en javascript pour aussi selectionner les préselections ?

Reply

Marsh Posté le 15-12-2003 à 16:04:12    

je ne pense pas ... c'est du multiple donc ça devrait fonctionner ... mais bon j'ai pas testé =)

Reply

Marsh Posté le 16-12-2003 à 07:43:18    

Ok je testerai ça ;)

Reply

Marsh Posté le 17-12-2003 à 10:37:26    

Je ne sais pas si le respect des standards est une contrainte ou pas pour le site sur lequel tu travailles, mais utiliser selected="selected" est préférable à selected utilisé seul, qui est déprécié.

Reply

Marsh Posté le 10-02-2004 à 20:31:08    

Bon j'ai testé cela ne marche pas ... Voici le code :
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Document sans titre</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. </head>
  7. <body>
  8. <form name=formulaire>
  9. <SELECT MULTIPLE name="liste" size=3>
  10.   <OPTION value="valeur ligne 1" selected>Libellé ligne 1</OPTION>
  11.   <OPTION value="valeur ligne 2">Libellé ligne 2</OPTION>
  12.   <OPTION value="valeur ligne 3">Libellé ligne 3</OPTION>
  13.   <OPTION value="valeur ligne 4">Libellé ligne 4</OPTION>
  14.   <OPTION value="valeur ligne 5" selected>Libellé ligne 5</OPTION>
  15. </SELECT>
  16. </form>
  17. <script language="javascript">
  18. document.formulaire.elements['liste'].selectedIndex = 3
  19. </script>
  20. </body>
  21. </html>


 
Donc si qqun connait un moyen pour mettre le centrage de la liste sur un des elements sélectionnés ça serait sympa


Message édité par Mazda3 le 10-02-2004 à 20:31:25
Reply

Marsh Posté le 10-02-2004 à 20:33:23    

Mazda3 a écrit :

Bon j'ai testé cela ne marche pas ... Voici le code :
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Document sans titre</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. </head>
  7. <body>
  8. <form name=formulaire>
  9. <SELECT MULTIPLE name="liste" size=3>
  10.   <OPTION value="valeur ligne 1" selected>Libellé ligne 1</OPTION>
  11.   <OPTION value="valeur ligne 2">Libellé ligne 2</OPTION>
  12.   <OPTION value="valeur ligne 3">Libellé ligne 3</OPTION>
  13.   <OPTION value="valeur ligne 4">Libellé ligne 4</OPTION>
  14.   <OPTION value="valeur ligne 5" selected>Libellé ligne 5</OPTION>
  15. </SELECT>
  16. </form>
  17. <script language="javascript">
  18. document.formulaire.elements['liste'].selectedIndex = 3
  19. </script>
  20. </body>
  21. </html>


 
Donc si qqun connait un moyen pour mettre le centrage de la liste sur un des elements sélectionnés ça serait sympa


 
Il ne peut en rester qu'un (selected).  [:totozzz]  
 
Donc NON, ce n'est pas possible.

Reply

Marsh Posté le 10-02-2004 à 20:38:12    

Rebonjour Hermes !
 
Mais c pas chouette ça !
 
Tu aurais une idée qui permet de remedier à ce pb, javascript, CSS, ou autre ...
 
Le seule idée que j'ai , c'est d'adapter la taille de la liste avec le nombre d'element, mais sur ceratine liste je risque d'avoir une vingtaine d'elements, ça fait big sur une page html


Message édité par Mazda3 le 10-02-2004 à 20:49:59
Reply

Marsh Posté le 10-02-2004 à 21:07:21    

Tu peux avoir UN SEUL élément sélectionné au départ avec un selected, ça c'est sûr. Si tu n'as besoin que d'un seul élément préselectionné, tout va bien.
 
Si tu as besoin de PLUSIEURS éléments préselectionnés, c'est bcp plus critique.
Une possibilité est de faire un textarea avec un contenu généré VIA javascript et tes éléments préselectionnés.

Reply

Marsh Posté le 11-02-2004 à 08:31:10    

Un textarea ????
 
Comment ça passe pour la seléction d'une ligne ?
Et le mettre en selection dans la textarea ?
 
Et on agit sur quel evenement ? onChange ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed