2009-03-02 7 views
1

J'écris une application qui permettrait aux utilisateurs de modifier un calendrier, sa description et quelques autres choses. J'utilise jquery, php et mysql. Chaque fois que l'utilisateur effectue une modification, il met à jour de manière asynchrone la base de données. Je voudrais leur donner la possibilité de transformer ce qu'ils font en pdf. Est-il possible de publier sur mon serveur le code HTML brut de la page après que l'utilisateur a apporté des modifications?Enregistrement du code HTML brut d'une page créée dynamiquement

Je pourrais régénérer la page en utilisant seulement php sur le serveur, mais de cette façon serait plus facile si possible.

+0

Veuillez être plus précis dans ce que vous essayez d'accomplir. –

Répondre

4

Vous pouvez l'utiliser pour obtenir la plupart du code HTML de la page:

var htmlSource = document.getElementsByTagName('html')[0].innerHTML; 

Cependant, il va manque les balises HTML d'ouverture et de fermeture et DOCTYPE, qui sera probablement pas d'importance pour vous que vous pourriez recréer très facilement sur le serveur.

Je suppose que vous pouvez simplement utiliser le même AJAX que vous utilisez déjà pour envoyer htmlSource au serveur une fois que vous l'avez saisi.

0

Régénérer la page à partir du serveur va être votre meilleur pari. Pour avoir une bonne expérience de téléchargement, vous devez être en mesure d'envoyer des en-têtes pour le type et la taille du contenu.

Pour répondre à votre question, j'utiliserais output buffering pour capturer la sortie de vos scripts, puis utiliser l'un des nombreux outils disponibles pour convertir HTML en PDF.

1

Vous pouvez certainement retourner le innerHTML de jQuery n'importe quel objet que vous pouvez sélectionner, bien que cela ne semble pas être la meilleure solution (voir les autres réponses pour les alternatives).

Attention au XSS attacks. Si vous lancez le code HTML sans le vérifier au préalable, vous vous exposez à des risques majeurs.

+0

Bon point sur l'échappatoire XSS. Sur une note connexe, il existe divers plug-ins de navigateur qui modifient la page. Le point est que la page que vous obtenez peut ne pas être exactement ce que vous attendez. Si vous le régénérez, vous n'aurez pas ce problème. – jdigital

+0

Une préoccupation valable. Je vais seulement permettre aux parties de confiance d'utiliser cette atm. –

Questions connexes