2010-08-06 10 views
1

J'essaie de trouver la meilleure approche pour traiter une soumission de formulaire qui implique la mise à jour des enregistrements db et la génération/téléchargement d'un fichier CSV, avant de rediriger vers la page d'appel originale. J'ai vu des messages disant que javascript est une façon de gérer cela, mais que recommanderiez-vous comme bonne pratique?Générer/télécharger CSV et rediriger

Voici la configuration de base:

vérifie l'utilisateur un ensemble de cases à cocher qui devrait être mis à jour dans la base de données et aussi téléchargé au format CSV. Formulaire soumet au script de gestion de formulaire, qui met à jour la base de données et suit toutes les mises à jour, reproduit le contenu CSV (en utilisant content-disposition et tous les en-têtes nécessaires) - tout fonctionne bien, mais je dois aussi retourner l'utilisateur page, avec les mises à jour ayant été faites. Est-ce possible?

+0

Bonne question. +1 de moi. J'y pense maintenant ... – Kangkan

Répondre

1

Vous devez définir une variable de session dans le script qui met à jour les enregistrements db, indiquant que lors du chargement de la page suivante, vous souhaitez envoyer le fichier CSV à l'utilisateur; Puis dans la page avec la liste des enregistrements (la page d'origine), vous vérifiez si cette variable de session est définie. Si elle est définie, vous redirigez l'utilisateur vers une page qui génère le fichier CSV (avec la disposition de contenu, etc.)

La redirection vers une page qui force un téléchargement pour l'utilisateur (via la pièce jointe Content-disposition) ne prend pas en charge le navigateur hors de la page d'origine, donc même après que l'utilisateur ait téléchargé le fichier CSV, il restera sur la page d'origine.

+0

Merci reko_t - c'est logique, et il n'y a pas non plus besoin de javascript, ce que je ne voulais pas impliquer dans le code de l'application. – kenny99

+0

En fait, vous avez probablement besoin de faire la redirection avec JS, car envoyer un en-tête 'Location' avec PHP doit être fait avant d'envoyer n'importe quel contenu au navigateur; par conséquent, vous ne pouvez pas afficher la page réelle si vous redirigez vers le fichier CSV avec PHP. –