Accueil > Forum > > > > Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent
Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent
samedi 10 mars 2007 à 13:23:03 |
Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

cousinlol
|
Bonjour,
Dans un formulaire, je choisi une famille de produit, puis (grâce à
ajax) la liste des produits correspondant à cette famille apparaît.
Tout cela fonctionne très bien.
Je viens de placer sur mon formulaire un bouton permettant d'ajouter un
produit à une famille. Ce bouton ouvre une fenêtre dans laquelle je
crée mon produit dans la famille qui va bien.
Je ferme ma fenêtre sans raffraîchir la fenêtre appelante.
Je vais dans la liste des produit de la famille et je ne vois pas le produit ajouté.
Pour le voir, il faut que je change de famille, puis que je revienne sur la famille du début et là je vois mon produit.
Mon problème est que effectivement le ONCHANGE placé sur le choix de la famille, n'est réactivé que si je change de famille.
Comment faire pour qu'au retour de ma fenêtre d'ajout de produit celui-ci soit visible dans le programme appelant.
Je pensais utiliser sur la fenêtre fille "onbeforeunload" dans le body qui exécuterait systématiquement une fonction. Cette fonction doit reprendre sur la mère le code famille de produit et exécuter mon ajax de rechargement des produits.
Merci d'avance
|
|
samedi 10 mars 2007 à 13:44:49 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

bultez
|
Bonjour,
si j'ai compris : simuler le onchange ?
dans la "mère", un truc du genre : <select id="toto" ... onchange="fonction_js(this);"....
dans la fille : pourquoi pas utiliser onbeforeunload, effectivement... ...onbeforeunload="window.opener.fonction_js(window.opener.document.getElementById('toto');"...
ou "pas loin"
|
|
samedi 10 mars 2007 à 15:56:05 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

cousinlol
|
Merci,
Oui, c'est exactement quelque chose comme cela
Dans mon cas, dans le script parent, j'ai <select name="type_famille" id="type_famille" onChange="goProduits(document.getElementById('type_famille'), document.getElementById('produit').id)" onfocus="this.className='focus';" onblur="this.className='normal';"> ..... </select> <select name="produit" id="produit"> <option value=............. </select> <input type="button" onClick="newShowModalDialog('maj_win_produit_gen.php?send_famille_type='+document.getElementById('type_famille').value+'&send_trt=Ajouter', 'innerHTML|style.backgroundColor|function',this.id,'modal=yes,directories=0,menubar=0,titlebar=0,toolbar=1,width=1120,height=430')" value="Ajouter un Produit" class="button">
J'appel donc la fille par la fonction "newShowModalDialog"
Dans ma fille, je vais donc faire quelque chose comme ceci :
<script> function returnParent() { window.opener.goProduits(window.opener.document.getElementById('type_famille'), document.getElementById('produit').id); } </script> <body onbeforeunload=returnParent()>
Lors de l'exécution, il me dit :
document.getElementById("produit") has no properties
Aurai-je oublié un lien quelque part entre fille et parent
|
|
samedi 10 mars 2007 à 16:06:56 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

cousinlol
|
Oups j'avais oublié, c'est mieux comme cela.
<script> function returnParent() { window.opener.goProduits(window.opener.document.getElementById('type_famille'),
window.opener.
document.getElementById('produit').id); } </script> <body onbeforeunload=returnParent()>
J'ai une liste d'erreur au retour :
Dans goProduits :
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
|
samedi 10 mars 2007 à 16:11:19 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

bultez
|
d'abord ...
window.opener.goProduits(window.opener.document.getElementById('type_famille'), document.getElementById('produit').id); peut-être il faut : window.opener.goProduits(window.opener.document.getElementById('type_famille'), window.opener.document.getElementById('produit').id);
mais tout dépend où est cet objet à l'ID "produit"...
sinon, quoi que fait newShowModalDialog ? ça ressemble à l'appel d'une pop-up, mais avec showmodaldialog "au nom", exclusif IE, mais surtout qui n'a pas le "window.opener", faut procéder autrement.
et quoi que c'est goProduits... mais là ça ne devrait pas poser de problème...
|
|
samedi 10 mars 2007 à 16:14:05 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

bultez
|
window.opener.goProduits(window.opener.document.getElementById('type_famille'),
window.opener.
document.getElementById('produit').id);
mais tout dépend où est cet objet à l'ID "produit"...
et tout dépend de l'utilisation de
window.opener.
document.getElementById('produit').id ( sûr que l'id est nécessaire, par exemple ? )
Cordialement Bul [mon Site] [M'écrire]
|
|
samedi 10 mars 2007 à 16:18:28 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

bultez
|
on s'est croisé.... et finalement : window.opener.goProduits( window.opener.document.getElementById('type_famille'), window.opener.document.getElementById('produit').id); si l'erreur est bien sur cette ligne ( et pas dans goProduits ), c'est que, dans la page mère, aucun objet avec id="produit" n'existe. ( ou alors qu'une erreur préalable "détruit" et fait que cet id n'est pas )
Cordialement Bul [mon Site] [M'écrire]
|
|
samedi 10 mars 2007 à 16:21:16 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

cousinlol
|
newShowModalDialog, c'est une fonction showmodaldialog pour firefox et autre.
Dans cette fonction, j'ai :
var newWin=window.open(url,'modal_'+id,windowParam);
Donc c'est un window.open qui est exécuté
|
|
samedi 10 mars 2007 à 16:47:02 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

cousinlol
|
Voila ce qui se passe.
Sur le formulaire parent
Je choisi un type de famille, il m'affiche la liste des produits.
Je clique sur mon bouton pour ajouter un produit, la fenêtre fille s'affiche. je crée le produit, je valide et je revient sur mon formulaire parent et la liste des produits à disparu.
il se passe donc quelque chose qui le fait réagir.
|
|
samedi 10 mars 2007 à 17:21:42 |
Re : Comment rafraîchir une liste déroulante alimentée par ajax à partir d'une fenêtre fille vers une parent

cousinlol
|
J'ai placé des "alert" pour suivre mes valeurs :
Mes valeurs sont les mêmes à l'aller et au retour.
Je ne perds plus au retour l'affichage de la liste des produits. Il exécute "goProduits" puisque j'ai mes alert qui s'affiche avec les bonnes valeurs, mais sans raffraîchir la liste des produits.
On en est pas loin.
|
|
Cette discussion est classée dans : liste, ajax, fenêtre, produit, famille
Répondre à ce message
Livres en rapport
|
Derniers Blogs
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|