par
mfrerebeau » 31 mars 2010, 12:16
Bonjour,
Je cherche depuis un moment sur le net et votre discussion se rapproche le plus de ce que je souhaite...
Cependant, mes raisons de chercher à dowloader un fichier avec AJAX sont différentes : mon clique gauche est bien libre...
Je me demande si cette solution AJAX est obligatoire pour mon problème ou si il existe une solution plus simple à ma problématique ?
Petite description du contexte :
Côté PHP, le fichier est généré en live. Parfois, il peut arriver que la génération ne puisse pas se faire. Ma fonction retourne alors une erreur. côté PHP ressemble à ça :
Code : Tout sélectionner
$erreur = generer_fichier( $info );
if( $erreur )
{
echo $message_erreur;
}
else
{
header("Content-disposition: attachment; filename=monfichier.pdf" );
header("Content-type: application/pdf" );
echo $info;
}
Côté HTML :
Mon souci :
- si le fichier est bien généré j'ai directement la fenêtre de chargement du fichier et ma page reste inchangée
- si le fichier n'est pas bien généré ma page est remplacé par le message d'erreur
Bien sûre, je peux recharger ma "belle" page en y insérant mon message d'erreur... Mais je souhaite, si c'est possible, ne pas recharger la page et renvoyer un simple message dans une boite d'alerte Js par exemple.
En AJAX, je renvoie le message en JSON et l'affiche dans une alerte... Mais là c'est quand la génération réussie que je ne sais plus comment afficher la fenêtre d'enregistrement du fichier côté client...
Avez-vous une idée pour faire simple et ne pas recharger la page en cas d'erreur ?