[JavaScript] - Modifier une liste déroulante sur une fenetre mere

- Modifier une liste déroulante sur une fenetre mere [JavaScript] - HTML/CSS - Programmation

Marsh Posté le 04-06-2004 à 10:25:57    

Bonjour tout le monde.
 
Je suis en train de découvrir le JavaScript ... (je suis avec un bouquin sous les bras et je commence a avoir des boules de sang qui se propagent tout le long les mains).
Bref, je viens de créer à partir d'une fenetre, une autre fenetre "fille" dans le but de commander le formulaire se trouvant chez la mère.
 
Ca marche bien avec les champs textes (opener.document.formulaire.champs_texte.value = "youpi" ) mais ... (y'a toujours un mais)
je voudrais pouvoir controler une liste déroulante se trouvant également sur la page mère. C'est à dire rajouter un élément ou à la limite supprimer un élément ...
 
Je me suis dis que ca marchait à peut pres pareil, et j'utilisé :
c = new Option("azerty", " ", true, true);
opener.document.toto.liste.options[4] = c;
 
Ce code là marche chez la mere en supprimant le opener mais ca ne marche pas chez la fille : erreur -> "Le serveur a généré une exception".
 
Par contre, j'arrive modifier le nombre d'élément de ma liste avec
opener.document.toto.liste.options.length = 10;
 
Est ce que quelqu'un pourrais me dire si c'est normal que ca bug et s'il y a moyen de régler ce problème.
 
Merci beaucoup :o)
Damien

Reply

Marsh Posté le 04-06-2004 à 10:25:57   

Reply

Marsh Posté le 06-06-2004 à 23:25:58    

Tu n'as normalement pas le droit d'acceder et de modifier directement des elements de ta fenetre parente. Par contre tu as le droit d'appeller des fonctions de la fenetre parente pour modifier tes elements.
 
//dans la fenetre parente:
function setListItem(index, text)
{
document.toto.liste.options[index] = new Option(text, " ", true, true);
}
 
//dans la fentetre fille:
opener.window.setListItem(4, "azerty" );

Reply

Marsh Posté le 07-06-2004 à 08:03:22    

yeah !! Impec ! ;)
 
Vraiment merci beaucoup parce que du coup, ca règle d'autres problèmes de connexion à la bdd ... (c'est un un projet un peu compliqué)

Reply

Marsh Posté le 07-06-2004 à 10:36:27    

Par contre, est-il possible de passer en paramètre le nom de la liste ?
En fait, j'aurais plusieurs listes sur la meme page "mère" a modifier et pour éviter de créer autant de fonction que de listes, je pensais lui passer son nom en argument ...
 
Mais je suis bloqué sur le nom de la liste dans le document.
Je viens de tenter en me donnant par avance que ca ne marcherais pas :
 
// Mere
function setListItem(nom_liste, index, text)  
{  
 document.toto.nom_liste.options[index] = new Option(text, " ", true, true);  
}  
 
//Fille
opener.window.setListItem("liste", 0, "azerty" );  
 
 
Est il donc possible de lui passer en parametre le nom de la liste ?
(si non, c'est pas tres grave ... c'était juste pour réduire le code et améliorer la comprehension)
 
Merci beaucoup
Damien

Reply

Marsh Posté le 07-06-2004 à 16:36:36    

Normalement ça devrait marcher si tu passe le nom de ta liste en paramétre...Essaye avec ça :-)
 
// Mere  
function setListItem(nom_liste, index, text)  
{  
form =document.forms[0];
form[nom_liste].options[index]= new Option(text, " ", true, true);  
}  
 
//Fille  
opener.window.setListItem("liste", 0, "azerty" );  

Reply

Marsh Posté le 08-06-2004 à 10:55:32    

Impec, merci beaucoup !

Reply

Sujets relatifs:

Leave a Replay

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