Liste dynamique avec check box

Liste dynamique avec check box - HTML/CSS - Programmation

Marsh Posté le 16-02-2005 à 17:19:21    

Liste dynamique avec check box
Bonjour, j'ai une base mysql dans laquel je voudrai faire quelques modif...
Je voudrai afficher la liste des éléments de cette table (deux champ N° et Libellé) avec des cases à cocher à coté de chacun.
Biensur, le but du jeu est que l'utilisateur coche se qui le concerne et appui sur envoi ce qui... (J'ai fait la suite...)
 
Don voila... pour l'instant, j'ai fait une liste déroulante avec une selection, mais l'inconvénient c'est qu'on peut en sélectionner qu'un seul...
 
Merci bcp pour votre aide.

Reply

Marsh Posté le 16-02-2005 à 17:19:21   

Reply

Marsh Posté le 16-02-2005 à 17:21:08    

t'es dans la bonne cat' cette fois, mais il faut toujours que tu ailles lire la doc de la balise <input>, à part ça aucune difficulté particulière.
 
http://forum.hardware.fr/hardwaref [...] 4521-1.htm


Message édité par skeye le 16-02-2005 à 17:21:22

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-02-2005 à 17:29:15    

J'ai l'impression que tu utilises un <select> si c'est le cas, l'attribut "multiple" est fait pour toi.

Reply

Marsh Posté le 17-02-2005 à 08:38:00    

bah le mieux serais davoir une liste déroulante d'un coté avec tout ce qu'il y aurait dans la table, et un bouton sélectionner qui permetterait de faire basculer la selection dans la seconde liste plus à droite. On peut voir cela sur certain site...
Merci pour votre aide.
 
 (La solution check box n'est plus valide car je me retrouve avec une liste déroulante (celle de gauche) contenant 372 occurences différente... (soit 372 check box...) donc je doit faire autrement d'où la solution liste déroulante avec basculement d'une occurence via bouton envoyer puis bouton finale "valider toute la selection".

Reply

Marsh Posté le 17-02-2005 à 09:08:08    

un peu comme ça
 
http://www.anpe.fr/consultationoff [...] riteres.do
 
(ne voyez aucune mauvaise pensée dans le choix du lien :D)

Reply

Marsh Posté le 17-02-2005 à 09:10:53    

Exactement... ouhai, c'est ca... S'il vous plait, help me... ;)

Reply

Marsh Posté le 17-02-2005 à 09:15:00    

geor a écrit :

Exactement... ouhai, c'est ca... S'il vous plait, help me... ;)


Regarde le code de la fonction javascript deplacerZoneGeo() dans la source de la page...;)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 17-02-2005 à 09:18:34    

... qui ne se trouve d'ailleurs pas dans la page, mais dans "criteres_recherche.htm", qui est en fait la page qui stocke les js  :pt1cable: bon en plus c'est tout en tableau et ça m'a jamais permis de trouver un job :sarcastic:

Reply

Marsh Posté le 17-02-2005 à 09:18:47    

Ca repose sur du JS, c'est pas accessible :D

Reply

Marsh Posté le 17-02-2005 à 09:24:31    

ouhai, ... Bah il va falloir réussir à développer ca, ca va pas être de la tarte...
 Je débute en java script, alors aïe aïe aïe...

Reply

Marsh Posté le 17-02-2005 à 09:24:31   

Reply

Marsh Posté le 17-02-2005 à 09:36:03    

j'ai bien ma liste d'un coté, et une liste vide de l'autre... mais comment réaliser l'envoy de l'un à l'autre via un bouton qui appel une fonction que je ne connais même pas??? Haaaaaaa... prise de tête!!!

Reply

Marsh Posté le 17-02-2005 à 09:37:23    

trouve la fonction d'abord (je t'ai dit où elle se trouvait)

Reply

Marsh Posté le 17-02-2005 à 09:42:46    

je trouve pas la page criteres_recherche.htm ... lien please.

Reply

Marsh Posté le 17-02-2005 à 09:47:53    

a si c bon... avec du mal...

Reply

Marsh Posté le 17-02-2005 à 09:49:21    

bon bah edit alors


Message édité par esrevni le 17-02-2005 à 09:49:39
Reply

Marsh Posté le 17-02-2005 à 10:56:49    

j'abandonne ca, c'est trop compliqué...
si quelqu'un à un lien sur la même chose en plu simple, j'suis preneur... ;)

Reply

Marsh Posté le 17-02-2005 à 14:26:04    

up!...

Reply

Marsh Posté le 17-02-2005 à 14:26:41    

à part le javascript il y a pas des masses de solutions pour faire ce que tu veux, là...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 17-02-2005 à 14:35:05    

quel méthode option me permet d'enlever une occurence d'une liste déroulante avec reclassement dans cette liste?

Reply

Marsh Posté le 17-02-2005 à 14:51:34    

en fait, à mon avis, tu dois reconstruire ton <select> à chaque clic sur le bouton (ça, c'est possible), mais tu peux aussi plus simplement vérifier si l'option choisi n'est pas déja dans la selection...

Reply

Marsh Posté le 17-02-2005 à 17:08:24    

oui, le plus simple c'est de faire un select non multiple et de faire comme un interrupteur : si quand tu sélectionnes dans son select la valeur est déjà à droite, tu la vires d'à droite, sinon tu l'ajoutes.
Alors ça c'est super facile à faire :) , j'aurais même pu te le donner mais je ne l'ai pas sous la main.

Reply

Marsh Posté le 21-02-2005 à 10:27:10    

ok. Merci, ca, s'est fait... Reste à enlever l'espace blanc dans la liste d'origine et reclasser le tout... (en javascript, bien sûr...)

Reply

Marsh Posté le 22-02-2005 à 10:37:34    

Arg... Quelqu'un sait il comment faire mon reclassement?
 
<script language="JavaScript">
var i=-1;
var k=-1;
function fctchangecote()
{
 // document.form2.select1.option.value;
 var contrax = document.form1.select1TypePers.options.selectedIndex;
 var ValInter = document.form1.select1TypePers.options[contrax].text;
 if(ValInter != ''){
  i++;
  var op = new Option(ValInter,ValInter);
   
  document.form1.select2TypePers.options[i] = op;
  var contrax = document.form1.select1TypePers.options.selectedIndex;
  document.form1.select1TypePers.options[contrax].text= '';
  var h = concat ((h)(-;-));
  h = concat ((h)(contrax));
 }
 return false;
}
function fctchangecote2()
{
 var contrax = document.form1.select1Entite.options.selectedIndex;
 var ValInter = document.form1.select1Entite.options[contrax].text;
 if(ValInter != ''){
  k++;
  var op = new Option(ValInter,ValInter);
   
  document.form1.select2Entite.options[k] = op;
  var contrax = document.form1.select1Entite.options.selectedIndex;
  document.form1.select1Entite.options[contrax].text= '';
 }
 return false;
}
function TransmiTypePers()
{
var TransmiTypePers = document.form1.select2TypePers.options.values;
}
 
 
</script>
 
<?php  
  // connection à la base de donnée QuiFaitQuoi via la page de connection : connectionmysql.php
  include "connectionmysql.php";
?>
<html>
<head>
<title>AjoutDemande</title>
</head>
<body>
 
<form name="form1" method="get" action="./ResultatInsertNewDemande.php" onSubmit="TransmiTypePers()">
<table width="100%" border="0">
  <tr>  
    <td width="32%"></td>
    <td width="44%"></td>
    <td width="24%"></td>
  </tr>
  <tr>  
    <td>Nom de la demande:</td>
    <td>
        <input type="text" name="TxtNomDemande">
     </td>
      <td>&nbsp;</td>
  </tr>
  <tr>  
    <td>Remarque</td>
    <td>
        <input type="text" name="TxtRemarque">
     </td>
      <td>&nbsp;</td>
  </tr>
  <tr>  
    <td>Pour quel type de pers cette demande est-elle?</td>
    <td>
        <select name="select1TypePers" multiple>
          <?php
          $sql = "SELECT TypePers FROM Personne";  
    $ReqLog = mysql_query($sql);
    while ($resultat = mysql_fetch_row($ReqLog)) {  
      echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';  
    }  
   ?>
        </select>
        <input type="button" name="Submit2" value="Basculer en zone de séléction" onClick="fctchangecote()">
      </td>
    <td>
        <select name="select2TypePers" multiple>
        </select>
      </td>
  </tr>
  <tr>  
    <td>Pour kel entit&eacute;e?</td>
    <td>
        <select name="select1Entite" multiple>
          <?php
          $sql = "SELECT NomEntité FROM entite";  
    $ReqLog = mysql_query($sql);
    while ($resultat = mysql_fetch_row($ReqLog)) {  
      echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';  
    }  
   ?>
        </select>
        <input type="button" name="Submit22" value="Basculer en zone de séléction" onClick="fctchangecote2()">
      </td>
    <td>
        <select name="select2Entite" multiple>
        </select>
     </td>
  </tr>
  <tr>  
    <td colspan="3">&nbsp; </td>
  </tr>
</table>
 
 
  <div align="center">  
    <input type="submit" name="Submit" value="Valider">
  </div>
</form>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>
  Merci pour tt conseil...

Reply

Marsh Posté le 22-02-2005 à 11:10:44    

[quote=989573,23,0,215611]Arg... Quelqu'un sait il comment faire mon reclassement?
 
[/quote]
 
ca y est, tu t'es décidé à arrêter l'informatique ?
 
 :whistle:  
 
bon ok je sors
 

Reply

Marsh Posté le 22-02-2005 à 11:14:33    

nan, mais j'ai juste besoin qu'on m'aide, qu'on m'indique ou trouver les solutions, je suis pas quelqu'un qui demande les solutions, mais qui veux apprendre...

Reply

Marsh Posté le 22-02-2005 à 11:25:12    

Si j'ai le temps, je te ferai la solution.
Déjà pour ajouter fait plutôt :
var op = new Option(ValInter,ValInter);  
document.form1.select2Entite.options[document.form1.select2Entite.options.length] = op;
comme ça tu n'as pas à tenir à jour le nombre de ligne dans ton select.

Reply

Marsh Posté le 22-02-2005 à 11:39:20    

Merci beaucoup de ton aide.

Reply

Marsh Posté le 22-02-2005 à 11:46:06    

inconvénients, je peux prendre plusieur fois la même occurence de la 1ère liste et don avoir des doublons dans la secondes...
 ce que je voudrai, c'est qu'en fait, lorseque j'ai choisit une option de la liste1, il disparaisse de celle ci pour se retrouver dans la 2ème.

Reply

Marsh Posté le 22-02-2005 à 12:10:49    

Ou fait comme je t'avais dit: un système type interupteur, si déjà dans liste2 tu supprimes de liste2, sinon tu ajoutes dans liste2.

Reply

Marsh Posté le 22-02-2005 à 13:21:07    

Bon allez, voici comment faire :
 
<script>
function rempListe()
{
  obj1=document.forms[0].liste1;
  obj2=document.forms[0].liste2;
  val=obj1.options[obj1.selectedIndex].value;
  bool=true;
  index=0;
  for(i=0;i<obj2.options.length;i++)
  {
      if(obj2.options[i].value==val)
      {
          bool=false;
          index=i;
          break;
      } else if(obj2.options[i].value<val)
      {
        index=i+1;
      }
  }
  if(bool)
  {
    for(i=obj2.options.length;i>index;i--)
    {
  //      obj2.options[i]=obj2.options[i-1];
        obj2.options[i]=new Option(obj2.options[i-1].value,obj2.options[i-1].text);
    }
    obj2.options[index]=new Option(val,val);
  } else
  {
      obj2.options[index]=null;
  }
}
</script>
</head>
<body bgcolor="#FFFFFF">
 
<hr />
<form>
<table><tr><td>
<select name="liste1" id="liste1" onchange="rempListe();" size=10>
<option value="abcdef">abcdef</option>
<option value="bcdef">bcdef</option>
<option value="cdef">cdef</option>
<option value="def">def</option>
<option value="ef">ef</option>
<option value="f">f</option></select>
</td><td width=20>&nbsp;</td><td>
<select size=10 mutiple name="liste2" id="liste2"></select></td></tr></table>
</form>
 
</body>
 
j'ai testé (je viens de l'écrire :) ) ça fonctionne très bien.
Dis moi si tu t'en sors.

Reply

Marsh Posté le 22-02-2005 à 13:22:45    

j'ai mis aucun commentaire... si tu ne comprends pas ce qui est fait, dis le moi.

Reply

Marsh Posté le 22-02-2005 à 13:44:35    

a si, bien vu... comment à tu fais pour pondre ca???
fallait y pensser! Chapeau bas l'ami...  :jap:  

Reply

Marsh Posté le 22-02-2005 à 14:27:12    

lol!!
comment j'ai fait,alors... j'ai pris mes petits doigts agiles et j'ai tapé sur mon clavier lol!

Reply

Marsh Posté le 22-02-2005 à 15:11:08    

bien vu tes doigts ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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