Pb ie : ajouter un <option> à un <select> à partir d'une popup

Signaler
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
-
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007
-
Bon c assez compliqué mais je vai essayer d'être le plu clair possible



J'ai une page dans laquel j'utilise la technologie AJAX couplé à du PHP pour initialiser des listes (<select>)



Au chargement de la page j'ai une liste visible puis selon les choix de
l'utilisateur j'affiche d'autre listes que j'initialise à partir de ma
bdd...grâce à AJAX et javascript (au passage c'est un truc de ouf AJAX).



En gros pour ajouter une option j'utilise:

document.forms.mon_formulaire.mon_element.options[document.forms.mon_formulaire.mon_element.options.length]=
new Option(val2,val1);



La ya aucun problème, les données sont bien ajoutées...le hic c'est
quand j'ouvre une popup à partir de cet page et que je veux ajouter un
element à une liste du document parent.



Pour cela je fais:

window.opener.document.mon_formulaire.mon_element.options[window.opener.document.mon_formulaire.mon_element.options.length]=
new Option(val2,val1);



Ca marche niquel sous Mozilla, mais pas sous Internet Explorer!

Je vois vraiment pas ou est le problème!Si quelqu'un à une idée!



Merci de votre attention.



YOSH

11 réponses

Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Déjà, j'aurais mis
window.opener.document.forms.mon_formulaire.mon_element.options[window.opener.document.forms.mon_formulaire.mon_element.options.length]=
new Option(val2,val1);

ensuite, j'aurais plutot fait :
opener.getElementById("mon_element").options[ etc ...

Attention à la distinction entre l'attribut name et l'attribut id
(je crois que IE est un peu plus permissif à ce niveau)

Cordialement
Roro webDev
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007

En fait j'ai déjà utiliser la pluspart des possibilités:

window.opener.document.forms.mon_formulaire.mon_element

window.opener.document.getElementById("mon_element")



Le truc c'est que ca marche sous Mozilla!!!



Autre précision:j'initialise le contenu d'un div à partir de cette popup avec innerHTML et ya pas de prob!!!



Concraitement mon code est le suivant:



//affiche une donnée dans un div du parent = > fonctionne bien

window.opener.document.getElementById('lib_type_decoupe').innerHTML=lib_type_decoupe;



//vide la liste du parent à initialiser => fonctionne bien

window.opener.document.getElementById('num_type_decoupe').innerHTML= "";



//ne fonctionne pas sous IE

window.opener.document .getElementById('num_type_decoupe').options[window.opener.document.getElementById('num_type_decoupe').options.length] = new Option(lib_type_decoupe,num_type_decoupe);



C'est à ni rien comprendre!!!



Merci de ton aide Roro










Yosh
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
ça vient de l'utilisation de new Option... que je n'ai plus en tête
enfin je crois, car :

var t=window.opener.document.mon_formulaire.mon_element;
t.length++;
t[t.length-1].text='aaa';
t[t.length-1].value='bbb';

fonctionne avec IE et FF.

Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Bul n'a peut-etre pas tort. Voici un bout de script (copié collé sans autres fioritures) que j'utilise dans les mêmes conditions (ajax, ...) et qui fonctionne.

var opt=new Option(respXML.getElementsByTagName("tarif")[i].getAttribute("lib"), respXML.getElementsByTagName("tarif")[i].getAttribute("garant"));
document.getElementById("anGar3").options[document.getElementById("anGar3").options.length]=opt;

(ici, respXML, c'est la réponse xml du serveur.)

Cordialement
Roro webDev
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Au fait, tu as vraiment besoin d'une popup pour faire ça ? c'est casse-G... les popups, de plus en plus de monde les refuse (souvent sans le savoir, d'ailleurs)

Cordialement
Roro webDev
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>les popups, de plus en plus de monde les refuse
et là roro06 a totalement raison.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~<FO>
</FO>
</S< body>
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007

Déjà merci à vous de m'aider, c sympa



Pour l'utilisation des popup, je sais que c vraiment pas top...j'aurai
pu utiliser un div mais bon...la ca m'évite de recharger ma page(d'ou
l'utilisation de AJAX).



Sinon j'ai résolu mon problème...



En fait tous ce que je voulais c stocké un identifiant...et du coup
j'ai changé ma liste par une zone de texte caché et la, hop plus de
problème...



Encore merci à vous...



Si vous avez des suggestions pour la popup, je suis tout ouï...(c pas bien français ça je crois )




Yosh
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>je suis toute ouie ( je pense, comme oreille, encore que toute ? qui a un dictionnaire ? )
si ajax ==> pas de rechargement de page, c'est l'avantage justement.
sinon, un div/span caché que l'on montre/cache quand nécessaire
remplace souvent avantageusement.
Cordialement. Bul. ~ Mon Site qu'il est à Moi ~
on ne dit pas "le dictionnaire Larousse", mais "pouvez-vous
me passer le dictionnaire, mademoiselle, s'il vous plait".<FO>
</FO>
</S< body>
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

"je suis toute ouïe", je crois au contraire que c'est bien français.
C'est cool si tu as réussi à résoudre ton problème .
Penche-toi bien sur AJAX : Il permet justement des communications client-serveur, sans avoir à recharger la page (c'est d'ailleurs son principal intérêt), sans popup, sans div caché ...

Cordialement
Roro webDev
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007

Bonjour

Ah ! Bul et moi nous sommes croisés (pour dire la même chose en plus )

Cordialement
Roro webDev
Messages postés
20
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
30 octobre 2007

Ouais, je vais suivre vos conseils et utiliser un div caché...facile à faire en plus!!!



Vous vous êtes croisé pour dire la même chose...c pas grave mieux vaut
avoir plusieurs avis et en l'occurence c'est les mêmes avis(d'ailleur
je suis de votre avis aussi)



Oulala ca fait beaucoup d'avis tous ça



Encore Merci (c'est qu'une impression ou je me répète là)



PS: vous êtes des bons!!!
Yosh