Javascript写入文本文件

khm*_*khm 8 html javascript

我正在尝试从表单中获取输入并将其保存到与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的新手,大多数是代码的合并,我看到其他人在网上使用类似的效果.有谁知道它为什么不起作用?我错误地写了这条路吗?我没有正确编写脚本吗?

Max*_*nna 7

这个问题很简单:让我们说一个开发人员创建了javascript代码来遍历你的所有文件系统并用虚拟文件填充它,在这个过程中破坏你的硬盘?这就是javascript不允许你进行这种操作的原因.当我们想要保存信息时,通常是使用服务器端代码而不是客户端的计算机完成的(除非我们当然在讨论像cookie这样的事情).

我的回答是让你重新考虑谁在拯救和在哪里.它应该由服务器来保存和保留用户的任何信息,因此你不会编写这种javascript代码...最好将数据保存在客户端无法控制或编辑的地方,比如在服务器上实例.

我可以建议一些简单的PHP代码,而不是存储在文本文件中,尝试数据库... PHP是一种服务器端语言,它可以让你保存到服务器计算机上的文件,但是你的服务器必须能够运行PHP,大多数计算机都没有内置PHP语言,所以你还需要一个内置php的web服务器.