Passer une valeur choisi d'une liste déroulante vers une autre

Invité
Invité n'ayant pas de compte PHPfrance

04 avr. 2008, 11:08

Bonjour

Ce que je voudrai faira c'est de pouvoir passer une valeur choisi d'une liste déroulante vers une autre

Jai deux listes deroulantes avec une bouton
<select name="items_gauche"  STYLE="width: 230px" multiple size=15>
et
<select name="items_droite"  STYLE="width: 230px" multiple size=15>
Un bouton se trouve entre ces deux liste
<input type="button" value=">>" onclick="return traiter_g_vers_d('gauche', 'droite');">
ma fonction javascript est le suivant
<script language='javascript'>
 function verifier_elements(de, vers)
      {
          var F = document.Formulaire;
          var elements1 = "items_" + de + "[]";
          var elements2 = "items_" + vers + "[]";

          operation_ok = true;
          for (i=0 ; i<F.elements[elements1].length ; i++)
          {
              if (F.elements[elements1].options[i].selected)
              {
                  $candidat_gauche = F.elements[elements1].options[i].value.split("!")[3];
                  $candidat_gauche += F.elements[elements1].options[i].value.split("!")[4];
                  for (j=0 ; j<F.elements[elements2].length ; j++)
                  {
                      $candidat_droite = F.elements[elements2].options[j].value.split("!")[3];
                      $candidat_droite += F.elements[elements2].options[j].value.split("!")[4];
                      if ($candidat_gauche == $candidat_droite)
                      {
                          operation_ok = false;
                          break;
                      }
                  }
              }

          }
          return operation_ok;
      }

      function deplacer_elements(de, vers)
      {
          var F = document.Formulaire;
          var elements1 = "items_" + de + "[]";
          var elements2 = "items_" + vers + "[]";

          if (F.elements[elements1].options.selectedIndex >= 0)
          {
              /* boucle tant qu'il reste des éléments sélectionnés */
              while (F.elements[elements1].options.selectedIndex >= 0)
              {
                  /* index de l'élément sélectionné */
                  index = F.elements[elements1].options.selectedIndex;
                  /* /texte de l'élément sélectionné */
                  texte = F.elements[elements1].options[index].text;
                  /* valeur de l'élément sélectionné */
                  valeur = F.elements[elements1].options[index].value;
                  /* suppression de l'élément sélectionné dans la liste d'origine */
                  F.elements[elements1].options[index] = null;
                  /* création de l'élément dans la liste accueillante */
                  var user = new Option(texte, valeur);
                  nb_elements = F.elements[elements2].options.length; // nbre d'éléments dans la liste accueillante
                  F.elements[elements2].options[nb_elements] = user;
              }
              return true;
          }
          else
          {
              return false;
          }
      }

      function traiter_elements(vers)
      {
          var F = document.Formulaire;
          var elements2 = "items_" + vers + "[]";

          for (i=0 ; i<F.elements[elements2].length ; i++)
          {
              val_texte = F.elements[elements2].options[i].value.split("!")[3];
              val_texte = val_texte + " " + F.elements[elements2].options[i].value.split("!")[4];
              val_texte = val_texte + " (" + F.elements[elements2].options[i].value.split("!")[1] + ")";
              if(F.elements[elements2].options[i].value != -1)
              {
                  F.elements[elements2].options[i].text = val_texte;
              }
          }

      }

      function traiter_g_vers_d(de, vers)
      {
          if (verifier_elements(de, vers))
              if (deplacer_elements(de, vers))
                  traiter_elements(vers);
      }
        
</script>
Ceux qui me bloque c'est que quand je selectionne une valeur dans la premiere liste et que je clique sur le bouton c'est marqué
undefined undefined (undefined)
dans la liste deroulante droite


Un grand Merci pour votre aide

Nounet
Invité n'ayant pas de compte PHPfrance

06 avr. 2008, 11:05

http://blog.jeremymartin.name/2008/02/e ... query.html

Il y a plein d'exemple si tu fais une recherche avec google du type transfert option select box...
liste deroulanteS.
Bon courage