double liste

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : double liste

par Cyrano » 16 avr. 2007, 07:48

:!: Attention : Il n'y a pas de "s" à getElementById contrairement à getElementsByName

par Invité » 16 avr. 2007, 01:03

j'ai trouvé: en mettant getElementsById au lieu de getElementsByName, ça marche.

par Invité » 11 avr. 2007, 11:07

c'est bien ça. Ma fonction qui transfère les éléments prend en argument la liste de départ et celle d'arriée:
moveSelectedOptions(from, to)
Ensuite elle essaye d'identifier la liste de départ avec
fromSelect = document.getElementsByName(from)[0];
La fonction getSelectedOptions est ensuite déclenchée pour récupérer les valeurs de la liste de départ
selOpt = getSelectedOptions(fromSelect);
L'erreur se produit a ce niveau. Dans la fonction getSelectedOptions, un boucle for tente de prendre les valeurs:
function getSelectedValues (select) {
var selValues = new Array();
for (j = 0; j < select.options.length; j++){
selValues[selValues.length] = select.options[j].value;		
}
return selValues;
}
Cette boucle renvoie l'erreur "Select has no values", donc les valeurs n'ont pas été récupérées. La liste n'est pas identifiée et ça doit être à cause de la première ligne qui cherche la liste, mais je ne vois pas pourquoi. Un problème de tableau?

par Invité » 11 avr. 2007, 10:53

dans la fonction moveSelectedOptions, il y a l'instruction suivante au début:
fromSelect = document.getElementsByName(from)[0];
Un alert(document.getElementsByName(from)[0]); me renvoie undefined.
A quoi sert cette ligne? serait-ce la source de mes ennuis?

par Invité » 11 avr. 2007, 09:25

pour info, voici le bouton qui déclenche le transfert
<INPUT name="button" type="button" class="transfert" onclick="list = moveSelectedOptions('list1','list2'); " value="Ajouter &darr;"> 
Et la fonction qui déclenche le transfert
		function moveSelectedOptions(from, to){
			fromSelect = document.getElementsByName(from)[0]; 		
			selOpt = getSelectedOptions(fromSelect);			
			var selValues = new Array();
			if(selOpt.length>0){				
				selValues = getSelectedValues(fromSelect);
				toSelect=document.getElementsByName(to)[0];
				for(i=0;i<selOpt.length;i++){
					option = selOpt[i];
					fromSelect.removeChild(option);						
					toSelect.appendChild(option);
				}
			}	
			return selValues;
		}
L'erreur semble se trouver dans la fonction getSelectedValues qui récupère les valeurs de la liste, qui se trouve au début de mon post. Je rappelle que tout marche sous ie, pas ff.

double liste

par Invité » 11 avr. 2007, 09:17

Bonjour à tous,

J'ai récupéré un script qui permet de transférer des items d'une liste déroulante à l'autre.Ici, il s'agit de produits qui doivent être transférés d'un catalogue à un autre.
http://www.librairiegiard.com/admin/ind ... transferts

Je rame un peu pour finaliser car j'obtiens une erreur dans FF, qui n'est pas reproductible sous IE. Quand j'essaye de transférer un item, j'obtiens l'erreur:
Select has no properties
Dans la fonction suivante:
		function getSelectedValues (select) {
			var selValues = new Array();
			for (j = 0; j < select.options.length; j++){
				selValues[selValues.length] = select.options[j].value;					
			}
			return selValues;
		}
Je vous remercie pour toutes les observations que vous pourrez m'adresser sur le code javascript de la page.