fonction ADD pour ajouter des options dans un select

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 : fonction ADD pour ajouter des options dans un select

par starkeus » 21 déc. 2005, 12:06

je ne connais pas trop js et encore moins les popup
mais tu peut essayer d'utiliser les fonctions Dom pour ajouter tes options
C'est ce que je fais...add() c'est une fonction du DOM mais d'après mes essais, il semble que cela soit la création de la balise Option qui soit différente entre FF et IE.
Merci quand meme de t'interesser à mon problème.

par jeff » 21 déc. 2005, 11:57

je ne connais pas trop js et encore moins les popup
mais tu peut essayer d'utiliser les fonctions Dom pour ajouter tes options

par starkeus » 21 déc. 2005, 11:31

chez moi mon code fonctionne tres bien sous ie6 et FF
y a un truc que je pige pas a tu detreminer ton erreur
le passage de la popup a ta page ou l'inverse
ou seulement l'ajout d'une option
L'erreur intervient à l'ajout. Essaye mon exemple tu verras que sous IE cela ne fonctionne pas. Ton exemple ne passe pas par une pop up.
moi je n'aime pas les popup ca complique pour rien
je fais juste apparaitre un div en pposition absolue c'est tout auusi efficace
je n'ai pas le choix les spec sont comme ça :wink: et en plus je vais utiliser la pop up sur plusieurs écrans.

par jeff » 21 déc. 2005, 10:29

chez moi mon code fonctionne tres bien sous ie6 et FF
y a un truc que je pige pas a tu detreminer ton erreur
le passage de la popup a ta page ou l'inverse
ou seulement l'ajout d'une option

moi je n'aime pas les popup ca complique pour rien
je fais juste apparaitre un div en pposition absolue c'est tout auusi efficace

par starkeus » 21 déc. 2005, 10:23

Merci de ta réponse mais cela ne fonctionne pas.
je te donne un exemple complet avec la pop up:
la page mère (mere.html) ...qui contient la balise select que je souhaite alimenter via une pop up.
<html>
<head></head>
<body>
<select id="select1">
</select>
<input type="button" value="pop up" onclick="javascript: window.open('fille.html');"/>
</body>
</html>
la page "fille" (fille.html) qui contient un bouton permettant d'ajouter une option dans la liste de la page mère:
<html>
<head>
<script type="text/javascript">
function addOptionFromPopUp(selectId,txt,val)
{

    var dest=opener.document.getElementById(selectId);
    var indexD=dest.options.length;
    if(indexD<0) return;
    var a =  new Option(txt,val);
    dest.options[indexD]=a;
}
</script>
</head>
<body>
<input type="button" value="ajouter" onClick="javascript: addOptionFromPopUp('select1','option','1');"/>
</body>
</html>
si tu essayes sous FF, cela marche. Mais sous IE cela me génère une exception et il n'y a que le code donnée dans mon premier post qui fonctionne car la méthode propre à IE ne fonctionne pas alors sous FF.

par jeff » 21 déc. 2005, 00:21

ceci fonctionne tres bien chez moi
var src=document.getElementById(source);
	var dest=document.getElementById(destination);
	var indexS=src.options.selectedIndex;
	var indexD=dest.options.length;
	if(indexS<0) return;
	var valeur=src.options[indexS].text;
	src.options[indexS]=null;
	a = new Option(valeur);
	dest.options[indexD]=a;

fonction ADD pour ajouter des options dans un select

par starkeus » 20 déc. 2005, 18:01

bonjour à tous!!
voilà j'ai un petit soucis:
J'ai une fenetre principale qui appelle une pop up dans laquelle se trouve une liste (pas au sens select) de liens qui permet d'alimenter la balise Select contenue dans la fenetre parent.
Je suis obligé d'utiliser 2 méthodes pour ajouter une option à ma select:
La première (ne fonctionne que sous FF) utilise la fonction add tout simplement en créant mon option par le constructeur Option().
La seconde (ne fonctionne que sous IE) crée mon option avec createElement('OPTION')...
Ces cas arrivent seulement quand je passe via une pop up.
Mais quand je le fais dans la même fenetre...IE supporte la méthode new Option...
quelqu'un pourrait m'expliquer et m'aider?? :roll:

Code : Tout sélectionner

function addOptionFromPopUp(selectId,txt,val) { //alert('selectId:'+selectId+' txt:'+txt+' val:'+val); if (controleExistenceChampFromPopUp (selectId,val)) alert('Ce champ est déjà dans la liste'); else { try{//POUR FF var objOption = new Option(txt,val); opener.$(selectId).options.add(objOption); } catch(ex) {//POUR IE var objOptionIE = opener.document.createElement("OPTION"); var select=opener.document.getElementById(selectId); select.options.add(objOptionIE); objOptionIE.innerText = txt; objOptionIE.value = val; } } }
Merci d'avance !!