Fermer une popup depuis la fenêtre parente [Résolu]

Signaler
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
-
Messages postés
1
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
10 décembre 2009
-
Hello,



J'y connais pas grand chose en javascript et j'ai besoin d'aide!

J'ai pondu un code en PHP qui contient un formulaire. Lorsqu'on clique sur le bouton, une popup s'ouvre:



function processPop(){

wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=100' + ',height=50');

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}

...






Après avoir cliqué sur le bouton, un script PHP assez long s'exécute
(ça peut prendre une minute). J'aimerais qu'à la fin de l'exécution, la
fenêtre popup se referme toute seule...

J'ai vaguement essayé de faire la chose suivante:



function closeProcess(){

wind2.close();

}

...

// exécution du script php

echo $results;

?>

closeProcess()



mais ça ne marche pas... quelqu'un pourrait m'aider?? (je résume: ouvrir une pop-up, puis la fermer automatiquement après l'exécution d'une fonction (un wait par exemple))




Thanx, Malik7934

9 réponses

Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
lol

j'ai trouvé pourquoi ca ne marche pas

c'est parce que tu ne peut fermer une fenetre qui est deja fermer - c'est normal



conclusion, tu doit réouvrir le popup puis le refermer tout de suite

je ne sais pas si tu me suis, donc tu fais comme ca :

function processPop(){
wind2
=
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');


wind2.close();

}

et la tu appel ta fonction pour le fermer et ca marche sans probleme

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
salut

je ne m'y connais pas non plus énormément en javascript

mais essaye plutot quelue chose du genre :



function closeProcess(){

wind2.close();

}

...

// exécution du script php

echo $results;

?>

<script>

closeProcess();

</script>


Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
Merci mais j'ai déjà essayé!



En fait, j'arrive même pas à fermer ce popup même avec un bouton
close... il doit y avoir une affaire de portabilité des variables...
mais j'y connais rien en javascript.

Voici pourquoi je parle de portabilité:





function processPop(){
wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2.close();

}



...

echo '</form>';

upld($arg);





et c'est dans la fonction upld que je fais





echo '';





Mais bien sûr, ça marche pô . Le bouton "Refermer la Fenêtre" n'a aucun effet...
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
un petit complément qui a son importance je crois... Mon code a cette forme:



function processPop(){

wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2.close();

}



...

echo '</form>';

upld($arg);



et c'est dans la fonction upld que je fais



echo '';



Mais bien sûr, ça marche pô
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
tiens

j'arrive a fermer le popup depuis la premiere fenetre avec un lien

......mais autrement je ne comprend pas

le lien qui marche

[# fermer]

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
Je viens de faire un bout de code totalement inutile, mais représentatif de la structure de ma source:



<HTML>



<head>

<title>popup</title>





<script LANGUAGE="JavaScript">

<!--



function processPop(){

var wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}



function closeProcess(){

wind2.close();

}



//-->

</script>

</HEAD>



<?php

function formulaire($sel){



echo '<form name ="multi_up" action="'.$_SERVER['SCRIPT_NAME'].'" method="post">';

echo '<select name="ligne" size="1">';



for ($i=0;$i<10;$i++)

if ($i == $sel)

echo '<option name="'.$i.'" selected>'.($i+1).'</option>';

else

echo '<option name="'.$i.'">'.($i+1).'</option>';

echo '</select>';

echo '

</form>';



}



function upld($i){

if ($i == 9) echo '';

}



$submit1 = $_POST['submit1'];

$submit2 = $_POST['submit2'];



if (!(($submit1) || ($submit2))){



formulaire(0);

}



else{



if (!($submit2)){



$submit1 = 0;

$j = $_POST['ligne'];

formulaire(($j-1));



for ($i=0;$i<$j;$i++){

echo $i.'
';

}

echo '</form>';

}



$j = $_GET['size'];



for($i=0;$i<10;$i++){

upld($i);

}



}

?>

</HTML>



Voilà. Peut-être qu'avec ça, mon erreur est plus détectable...
je veux juste que le popup qui s'ouvre avec open se referme avec close!
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
CA MARCHE!!!



Par contre j'ai pô compris...

"

c'est parce que tu ne peut fermer une fenetre qui est deja fermer - c'est normal" ... je la ferme quand la fenêtre?
Messages postés
1250
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
30 septembre 2007
1
en faites tu ne la ferme pas vraiment mais tu en empeche l'accès, dans la fonction ou tu la crée

je te met la ligne en rouge

function processPop(){
var
wind2 =
window.open('','processing','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,'
+ 'width=300,height=200,left=200,top=100,screenX=200,screenY=100');

wind2.focus();

wind2.document.write("<center>please, wait while loading
</center>");

wind2.document.close();

}


@+

Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Mon site Internet
Messages postés
1
Date d'inscription
mercredi 14 février 2007
Statut
Membre
Dernière intervention
10 décembre 2009