如何在点击时创建新的 .html 网页? [关闭]
Posted
技术标签:
【中文标题】如何在点击时创建新的 .html 网页? [关闭]【英文标题】:How do I create a new .html webpage onclick? [closed] 【发布时间】:2015-11-29 12:19:32 【问题描述】:我想要做的是当用户单击我的 html 按钮时,我想在服务器上动态创建一个新网页。我需要新网页的url有自己的url,也就是应该不一样。
更详细:当用户单击按钮时,我想将新的 .html 文件上传到服务器。因此,例如,如果我有一个名为 www.check.com/index.html 的网站,当用户单击 index.html 中的按钮时,我需要创建一个包含一些 html 行的新 .html(但没有 CSS,什么都不会显示在页面上)。因此,当用户单击按钮时,我希望将文件上传到具有唯一 URL(如 www.check/1.html)的服务器,第二次将是 check.com/2.html 等等。我1.html、2.html 等等都可以。
javascript 代码:
function makePage()
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
if(xmlhttp.readyState==4 && xmlhttp.status==200)
alert("webpage " + xmlhttp.responseText + " was successfully created!");
var content = "<html><head></head><body><meta name=\"twitter:card\" content=\"summary_large_image\"><meta name=\"twitter:site\" content=\"@nytimes\"><meta name=\"twitter:creator\" content=\"@SarahMaslinNir\"><meta name=\"twitter:title\" content=\"Parade of Fans for Houston’s Funeral\"><meta name=\"twitter:description\" content=\"Blah Blah Blah content.\"><meta name=\"twitter:image\" content=\"\"><script>document.getElementById(\"imgTweet\").innerHTML.write(img);</script></body></html>";
xmlhttp.open("GET","makePage.php?content=" + content,true);
xmlhttp.send();
'img' 是我不同页面中的一个变量。代码创建的网页没有被执行。
【问题讨论】:
所以你需要三样东西。 (1) 一个 HTML 按钮和一个通过 AJAX 访问 PHP 脚本的 JS 代码。 (2) 一个 PHP 脚本,它从数据库中获取一个自动递增的数字,创建 HTML 文件并使用自动递增的数字保存它。 (3) 一个数据库,一个表,一个自增ID字段。 你在使用框架吗? .. 这允许基于 url 变量创建页面。看来您需要从那里开始。 Laraval 似乎很受欢迎,但最好还是去找一个关于 MVC 框架的视频教程来构建你自己的简单版本,这样你就可以学习一些基础知识。 【参考方案1】:您必须使用AJAX 来执行php。使用file_put_contents() 在 php 中创建新文件非常简单。
这是一个例子: makePage.html:
<html>
<body>
<button onclick="makePage()">click</button>
<script src="makePage.js">
</script>
</body>
</html>
makePage.php:
<?php
$content = $_GET["content"];
$file = uniqid() . ".html";
file_put_contents($file, $content);
echo $file;
?>
makePage.js
function makePage()
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
if(xmlhttp.readyState==4 && xmlhttp.status==200)
alert("webpage " + xmlhttp.responseText + " was successfully created!");
var content = "<html><head><meta charset=\"utf-8\" /> </head><body>new website<script>alert(\"test\")</script></body></html>";
xmlhttp.open("GET","makePage.php?content=" + content,true);
xmlhttp.send();
希望这会有所帮助
【讨论】:
谢谢!能否请您添加 AJAX 脚本? AJAX 脚本包含在“makePage.html”中 好的,谢谢,我试试你的方法。我在问题中添加了一些内容。 它的工作原理完全符合您的要求,只需从 .php 文件中删除“path/”并将 .html 中的“content”变量编辑为您希望在新页面中包含的文本。除非同时创建两个页面,否则 php uniqid() 将为您提供唯一的名称。 太棒了,谢谢。我会试试看,并在第二天回复你。以上是关于如何在点击时创建新的 .html 网页? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章