2012-10-02 5 views
0

Je veux savoir s'il est possible d'utiliser un html/javascript forme de base de données d'entrée, puis lorsque le bouton est utilisé le résultat est la création d'un nouveau document html sur le serveur web. Le contenu du formulaire initial serait utilisé pour déterminer quelles données sont ajoutées à la nouvelle page html lors de sa création. Probablement en utilisant PHP/MySQL. Merci.Comment créer de nouvelles pages html sur un serveur via html/javascript formulaire de saisie

+0

Voulez-vous créer une page permanente, statique, ou tout simplement retourner un document à la volée sur la base des données de formulaire? – Barmar

+0

Je veux créer un document permanent sur le serveur qui peut être servi à tout moment. Cela serait fait à plusieurs reprises et j'incorporerais probablement un script de convention de nommage afin que chacun soit intitulé quelque chose de différent IE: doc1.html, doc2 .html etc Au strict minimum, je veux savoir si je peux avoir un bouton de soumission qui "fait" un nouveau document html "physique" sur le serveur chaque fois que l'on clique dessus. Je suis sûr que cela peut être fait, mais la recherche sur Google est une douleur puisque les mots clés inondent la recherche avec "comment créer un formulaire" résultats. :( – William

Répondre

1

JavaScript fonctionne sur le client, pas le serveur, donc il ne peut pas créer des fichiers directement. Cela serait fait en utilisant un script PHP sur le serveur qui traite le formulaire. Il est très similaire à l'affichage d'une page sur la base des données de formulaire, mais il écrit dans un fichier:

$f = fopen($filename, 'w') or die "Can't create file $filename"; 
fprintf($f, "<html>\n<body>\n"); 
// and so on 
fprintf($f, "</body>\n</html>\n"); 
fclose($f); 
+0

Je pensais que beaucoup, mais ne savait pas comment. Je pensais qu'il pourrait y avoir un supplément ish html-5 à la spécification à ce point. – William

+0

Si votre serveur Web prend en charge l'opération 'PUT', vous pouvez construire l'ensemble page dans le navigateur et le télécharger sur le serveur via un appel AJAX avec 'PUT' au lieu de' POST. 'Mais beaucoup de serveurs ne le permettent pas – Barmar

+0

Je suppose qu'ils ne le permettent pas en raison d'éventuels problèmes de sécurité, etc. – William

0

Vous pouvez le faire, mais je recommande fortement contre mettre quelque chose comme ça sur un site. Un tel outil permettrait facilement à un attaquant de placer n'importe quel type de code sur votre site. Si vous créez un outil comme celui-ci, vous pouvez protéger le répertoire par mot de passe à l'aide du serveur Web ou créer un système d'authentification. Si vous voulez pouvoir modifier des pages à l'aide d'une base de données, il existe de nombreux systèmes de gestion de contenu qui vous permettent déjà de le faire. Drupal ou Wordpress sont quelques bons endroits pour commencer.

0

Il n'y a pas besoin réel de créer toute la page html sur le serveur. Un bien meilleur moyen serait de sauvegarder les données du formulaire sur la base de données. Lorsque vous avez besoin d'afficher les données, remplissez simplement un modèle et servez. Cela rendra la gestion de toutes ces pages beaucoup plus facile car tout changement ne doit être fait que sur le modèle, et non sur les fichiers créés.

Par exemple, considérez que votre formulaire a un prénom, nom et champ de commentaire. Vous stockez probablement.

{ firstName: 'John', lastName: 'Doe', comment: 'This was good' } 
{ firstName: 'Jane', lastName: 'Doe', comment: 'This was bad' } 

Et vous auriez probablement un template.html sur le serveur, comme ceci:

<html> 
<head><title>View Comment</title></head> 
<body> 
    Name: {{lastName}}, {{firstName}} 
    Comment: {{comment}} 
</body> 
</html> 

Il utilise une syntaxe spécifique Mustache.js mais vous pouvez choisir ce que vous voulez. Quand une demande est faite, vous remplissez simplement les espaces réservés avec les données et le tour est joué! une page html dynamique.

Questions connexes