我正在尝试从表单中获取输入并将其保存到与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>
这确实从“item”获取信息并将其传递给函数writeToFile(),因为测试警报确实有效。但每当我检查文件reserve.text时,都没有写入。我是javascript的新手,大多数是代码的合并,我看到其他人在网上使用类似的效果。有谁知道它为什么不起作用?我错误地写了这条路吗?我没有正确编写脚本吗?
答案 0 :(得分:7)
这个问题很简单:让我们说开发人员创建了javascript代码来遍历所有文件系统并用虚拟文件填充它,在这个过程中破坏你的硬盘?这就是为什么javascript不允许你做这种操作的原因。当我们想要保存信息时,通常是使用服务器端代码而不是客户端计算机完成的(当然,除非我们讨论像cookie这样的事情)。
我的回答是让你重新思考谁在拯救和拯救。它应该由服务器来保存和保留用户的任何信息,因此你不会编写这种javascript代码...最好将数据保存在客户端无法控制或编辑的地方,比如在服务器上实例。
我可以建议一些简单的PHP代码,而不是存储在文本文件中,尝试数据库... PHP是一种服务器端语言,可以将内容保存到服务器计算机上的文件中,但是服务器必须能够运行PHP,大多数计算机都没有内置PHP语言,所以你还需要一个内置php的网络服务器..
答案 1 :(得分:0)
在我看来,你的整个方法都很糟糕;你需要学习PHP和mySQL来存储和加载持久数据。 - 编辑:从JavaScript访问文件系统存在巨大的安全风险,因此一般情况下不允许这样做。除非您的目标是专门从JS编写文件,否则有更好的选择。
无论如何,此代码仅适用于Internet Explorer,并且只能以安全设置方式运行。你不应该追求这个。
如果您的最终目标是编写一个存储和显示预订的Web应用程序,请获取XAMPP并找到初学PHP +数据库教程。