Page 1 sur 1

Formulaires et événement de "retour"

Posté : 21 juin 2007, 10:38
par Hermès
Bonjour,

Je sèche actuellement sur un problème qui me paraissait facile au départ...

J'ai un formulaire qui, lorsqu'on le valide, envoi ses informations à un script qui va générer un fichier zip. Donc lorsque l'utilisateur click, son écran ne change pas de page mais au bout d'un moment (le temps que le zip soit généré), une fenêtre gérée par le navigateur ("Enregistrer sous..."/"Ouvrir avec...") s'ouvre pour lui permettre d'enregistrer le fichier.

Le temps que le fichier zip se génère, je souhaite faire apparaître un message "veuillez patienter", donc j'ai surchargé la méthode onsubmit de mon formulaire (qui se charge aussi de valider les champs).
Jusqu'ici tout va bien.

Sauf que j'ignore comment faire disparaître le message en question une fois que le navigateur ouvre la fenêtre de sauvegarde et que l'utilisateur a cliqué sur OK ou sur Annuler. Etant donné que la page du formulaire n'est pas rechargée, ça n'est pas dans le onload de la page.

Bref avec-vous une idée du comment faire disparaître mon message une fois que l'utilisateur a accepté le fichier (ou refusé).

Posté : 21 juin 2007, 13:44
par Genova
Lorsque tu lances ka fenêtre "enregistrer sous", c'est donc lié à un moment précis. Il te suffit de cacher la fenête "veuillez patienter" à ce moment là.

Posté : 21 juin 2007, 14:05
par Hermès
Ben justement non, ça n'est pas moi qui la lance cette fenêtre.

Enfin si, dans un sens c'est moi mais pas sur la page du formulaire, sur le script qui va recevoir mes données POST pour générer le zip, je n'ai donc plus la main sur le DOM de mon formulaire à ce moment là.

En fait c'est un peu comme si je crée un fichier php qui ne contient qu'une seule ligne de commande :
<?php
header('Location: monFichier.zip');
?>
Quand on va sur cette page php, le navigateur tente d'aller sur l'url sauf que c'est un fichier zip donc il ouvre une fenêtre pour me permettre d'enregistrer le fichier. Mais dans mon navigateur, j'ai toujours pour url ma page php donc je devrais pouvoir encore manipuler le dom. Mais comment manipuler le DOM après l'apparition de la fenêtre d'Enregistrement ?