我正在尝试从表单中获取输入并将其保存到与html文件位于同一文件夹中的文本文件中.这是我到目前为止:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Reservation</title>
<meta name="description" content="The HTML5 Herald">
<meta name="author" content="SitePoint">
<link rel="stylesheet" href="css/styles.css?v=1.0">
<script>
function writeToFile(item, name, time)
{
alert("Hello " + item);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("E:/labChart/etc/reserve.text", 8);
fh.WriteLine(item);
fh.Close();
}
function readFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fh = fso.OpenTextFile("reserve.text", 1, false, 0);
var lines = "";
while (!fh.AtEndOfStream) {
lines += fh.ReadLine() + "\r";
}
fh.Close();
return lines;
}
</script>
</head>
<body>
Reservation
<br>
<form>
Item:
<br>
<input type="text" name="item" id="item">
<br>
Name:
<br>
<input type="text" name="name" id="name">
<br>
Time:
<br>
<input type="date" name="time" id="time">
<br>
<br>
<input type="submit" value="Submit" onclick="writeToFile(document.getElementById('item').value, document.getElementById('name').value, document.getElementById('time').value)">
</form>
<script src="js/scripts.js"></script>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
这确实从"item"获取信息并将其传递给函数writeToFile(),因为测试警报确实有效.但每当我检查文件reserve.text时,都没有写入.我是javascript的新手,大多数是代码的合并,我看到其他人在网上使用类似的效果.有谁知道它为什么不起作用?我错误地写了这条路吗?我没有正确编写脚本吗?
这个问题很简单:让我们说一个开发人员创建了javascript代码来遍历你的所有文件系统并用虚拟文件填充它,在这个过程中破坏你的硬盘?这就是javascript不允许你进行这种操作的原因.当我们想要保存信息时,通常是使用服务器端代码而不是客户端的计算机完成的(除非我们当然在讨论像cookie这样的事情).
我的回答是让你重新考虑谁在拯救和在哪里.它应该由服务器来保存和保留用户的任何信息,因此你不会编写这种javascript代码...最好将数据保存在客户端无法控制或编辑的地方,比如在服务器上实例.
我可以建议一些简单的PHP代码,而不是存储在文本文件中,尝试数据库... PHP是一种服务器端语言,它可以让你保存到服务器计算机上的文件,但是你的服务器必须能够运行PHP,大多数计算机都没有内置PHP语言,所以你还需要一个内置php的web服务器.