Fermeture de popup

Petit nouveau ! | 6 Messages

26 nov. 2008, 19:04

Bonjour,
je viens ici pour vous exposer mon problème, quelque peu complexe (en tout cas pour moi qui ne connait que moyennement le jascript) et pour trouver sa solution.

Sur mon site, je propose à mes membres de télecharger des executables avec un bouton SUBMIT, combiné à du JS :

Code : Tout sélectionner

<form name="dl"> ... .. .. .. <input type="submit" onclick="pop_it(dl);" value="Télecharger ce log" name="ccleaner">
Voilà le script :

Code : Tout sélectionner

<script language="javascript" type="text/javascript"> function pop_it(the_form) { my_form = eval(the_form) window.open("./wait.php", "popup", "top=-1000,left=-1000,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'"); my_form.target = "popup"; my_form.submit(); location.href='index.php'; } </script>
( le "location.href='index.php';" a été rajouté par moi pr redirigé vers lindex)


Ce script permet, quand un membre appuie sur le submit, d'ouvrir la page cible dans une popup.
Cette popup est en php, et redirectionne vers l'exe en question, hebergé sur mon espace.

Bref, un ptit résumé : le membre clic sur le submit, une popup s'ouvre et une boite de telechargement s'ouvre pour proposer de télécharger le fichier (jusque là normal).

Seulement, une fois le telechargement lancé, la popup ( qui plus est de 1024*768) ne se referme pas et reste au premier plan.
J'aimerais en fait fermer cette popup apres le lancement du telechargement!
Sur un forum, on conseillais de décaller la popop avec top = -1000 et left = -1000, mais non seulement cela ne marche pas mais je voudrais non pas la décaller mais la FERMER apres le telechargement.

Alors comment faire ? Merci à vous!

Eléphant du PHP | 353 Messages

26 nov. 2008, 19:23

Question bete.
Pourquoi ne force tu pas le téléchargement sans popup via des headers php par exemple ?

Par exemple :
<?php
$fichier = 'repertoire/fichier.ext';

// Nous extrayons les informations grâce à $fichier
$fichier_nom = basename($fichier);
$fichier_mime = mime_content_type($fichier);
     
// téléchargement du fichier
header("Content-disposition: attachment; filename=".$fichier_nom);
header("Content-Type: $fichier_mime");
readfile($fichier);
?>

Petit nouveau ! | 6 Messages

26 nov. 2008, 20:09

Car en même temps de faire telecharger le fichier, dans la meme page, jexecute des requetes SQL pour modifier des champs dans une table ... tout simplement !

Donc je sais pas si, en mettant mes requetes SQL apres le header, elles seront executées ou non ...



EDIT : j'y suis enfin arrivé, cest bon! Pour ceux que ca intéresse :

- Création d'une fonction qui, une fois appellée n'importe ou dans le code, redirectionne :
function redirect($fichier)
{
$fichier_nom = basename($fichier);
$fichier_mime = mime_content_type($fichier); 
header("Content-disposition: attachment; filename=".$fichier_nom);
header("Content-Type: $fichier_mime");
readfile($fichier); 
}
J'ai donc mis mes requetes SQL a éxécuté, et, apres, appelé la fonction. Ca marche très bien.[/code]

ViPHP
AB
ViPHP | 5818 Messages

26 nov. 2008, 21:43

Quand un sujet est résolu, on a l'habitude de cliquer sur résolu pour indiquer aux prochains visiteurs que le sujet contient une solution :wink:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 nov. 2008, 22:44

Modération :
antoniolav75, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.


AB, tu peux signaler pour ça ... :roll:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer