OVH Cloud OVH Cloud

Pop-up qui recharge son parent ?

15 réponses
Avatar
Marie ALHOMME
Bonjour,

C'est probablement une question couillon et/ou déjà posée... mais impossible
de trouver ma réponse sur le site ou dans les forums...
Pis moi ma spécialité c'est les css, pas le javascript...

Voilà, dans mon back-office en php, j'ai une page qui affiche la liste des
utilisateurs, avec des liens sur chacun pour les modifier.
Chacun de ces liens ouvre une pop-up avec un formulaire reprenant le détail
de l'utilisateur, jusque là tout va bien (heureusement !)...

Pour l'instant, le formulaire recharge la page d'origine d'appel de la
pop-up (la liste des utilisateurs, donc) *dans* la pop-up et la page "du
dessous" ne change pas...
Donc je ferme ma pop-up à la main et je recharge ma page de liste... pas
très sexy !

Vous l'aurez compris, j'aurai simplement souhaité que le formulaire ferme la
pop-up et recharge la fenetre "mère" qui a lancé la pop-up...

Alors voilà, je m'en remets à votre bonne âme pour m'aider, parce que soit
c'est la fatigue soit la bétise mais je ne vois pas trop comment faire...
j'ai une vague idée qu'il faut que je fouille dans le
window.close('nom_de_ma_pop_up') mais où je le mets ? dans un OnSubmit dans
la balise form de la pop-up ?
Et pour recharger la page "parente", que dois-je mettre ? et où ? dois-je
donner un nom à ma fenetre parente dans le lien qui ouvre la pop-up (genre
window.name="" ou que sais-je) ??

J'ai vu des choses sur ce forum, notamment le message de réponse de ASM du
18/11 intitulé "Re: action dans une autre fenetre ?" mais je sais pas, j'ai
rien compris, lol ! :)


Bref, si vous voulez bien me filer un p'tit coup d'main j'pourrai éviter d'y
passer 3 jours ! :D
Merci d'avance !!


Bonne soirée à tous,
Marie

5 réponses

1 2
Avatar
Marie ALHOMME
Re-,

Démosthene wrote:
J'ai pas bien compris ta problématique peut-être ?

Qu'as-tu exactement ?
Ou est le formulaire à valider mère ou fille ?
Qui fait quoi ?

Je pose ces questions parceque la popup peut valider un formulaire
dans la fenètre mère ou vice versa.


:) oui c'est vrai que j'étais pas très claire sur ce coup là :)
Enfin bref, toujours est-il que la méthode de YD marche très bien, enfin !

Donc merci à tous de votre aide, en espérant pouvoir vous filer moi aussi un
coup de main un jour (en css par exemple) ! :)


Bonne journée,
Marie

Avatar
ASM

Je ne réponds pas dans l'enfilade, puisque j'apporte un autre point de vue.


Me semble bien que ça reste "dans l'idée"
(trouver un target efficace pour le submit)
;-))

dans le popup
<form id="..." action="..." method="..." target="theOpener"
onsubmit="return true, setTimeout('self.close()',50);">


Là, ici, j'aurais plutôt fait le contraire :

onsubmit=" setTimeout('self.close()',50); return true;"

Sinon (à mon idée) le timeout va passer aux oubliettes

De plus, avec mon Mozilla, le temps qu'on ait passé le test de controle
(Attention vous envoyez des donnees non securisées et blabla)
Hop ! trop tard !
le popup est fermé avant d'envoyer quoique ce soit

Test résumé de ce que donné ici :
http://perso.wanadoo.fr/stephane.moriaux/truc/communik_fille_mere/

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************

Avatar
YD

Me semble bien que ça reste "dans l'idée"
(trouver un target efficace pour le submit)
;-))


Oui, mais ça faisait reprendre au milieu...


dans le popup
<form id="..." action="..." method="..." target="theOpener"
onsubmit="return true, setTimeout('self.close()',50);">



Là, ici, j'aurais plutôt fait le contraire :

onsubmit=" setTimeout('self.close()',50); return true;"
Sinon (à mon idée) le timeout va passer aux oubliettes


Regarde bien, j'ai mis une virgule, pas un point-virgule après
return true ;-) (et c'est testé avec IE6, Firefox 1.0 et
Opera 7.54).

De plus, avec mon Mozilla, le temps qu'on ait passé le test de controle
(Attention vous envoyez des donnees non securisées et blabla)
Hop ! trop tard !
le popup est fermé avant d'envoyer quoique ce soit


Pourquoi ça s'affiche, ça ? Il n'y a pas une case à cocher ou décocher
quand on a marre de le voir ? Dans mon Mozilla, y a... Mais c'est vrai
que c'est plantogène avec mon setTimeout puisque le formulaire n'a pas
le temps d'être soumis. Ceci étant, par rapport au problème posé, ça
ne devrait pas jouer, il était question de back office, donc
d'environnement (+ ou -) contrôlé.

Pour affiner, plutôt que le self.close() brutal, on peut toujours tester
si l'opener du popup existe ou si opener.location.href n'a pas changé,
ce qui laisse tout le temps voulu s'il y a un upload, une transmission
très lente... Comme ceci (tjs testé IE6 Fx1.0 Op7.54) :

<script type="text/javascript">
var loc_ref = opener?opener.location.href: null;
function testerOpener(){
if((!opener) || (opener.location.href != loc_ref)) self.close();
else {setTimeout('testerPage()',50);
}
</script>

et

<form action="..." method="..." target="theOpener"
onsubmit="return true, testerPage();">

Test résumé de ce que donné ici :
http://perso.wanadoo.fr/stephane.moriaux/truc/communik_fille_mere/


Qui ne fonctionne qu'avec method="get", si j'ai bien vu ?

--
Y.D.


Avatar
ASM

Test résumé de ce que donné ici :
http://perso.wanadoo.fr/stephane.moriaux/truc/communik_fille_mere/


Qui ne fonctionne qu'avec method="get", si j'ai bien vu ?


Heu... !

pas mis de method ! oublié !
bricolé un JS pour remplacer le truc-bazard php
donc oui là comme c'est, ce doit être en get.

Et ?

J'aurais peut-être du m'abstenir d'1 exemple concret
qui risque d'encore plus confusionner ?

--
*******************************************************
Stéphane MORIAUX et son vieux Mac
Aide Pages Perso (images & couleurs, formulaire, CHP)
http://perso.wanadoo.fr/stephane.moriaux/internet/
*******************************************************


Avatar
YD


Test résumé de ce que donné ici :
http://perso.wanadoo.fr/stephane.moriaux/truc/communik_fille_mere/


Qui ne fonctionne qu'avec method="get", si j'ai bien vu ?



Heu... !

pas mis de method ! oublié !


Pas obligatoire, par défaut c'est get.

bricolé un JS pour remplacer le truc-bazard php
donc oui là comme c'est, ce doit être en get.

Et ?


Ne permet pas un volume de données aussi important que post qui ne
permet pas de récupérer les données par script client que je sache.

J'aurais peut-être du m'abstenir d'1 exemple concret
qui risque d'encore plus confusionner ?


Je ne pense pas. Un exemple vaut mieux qu'un long discours, paraît-il 8-)

--
Y.D.



1 2