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 !!
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/ *******************************************************
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);">
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/
*******************************************************
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/ *******************************************************
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>
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.
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>
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>