我知道有很多相关内容,但我尝试了很多这些选项并且没有成功,请告诉我这里做错了什么:
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
<title>IP</title>
<%
function su192168165()
Dim fso192168165, f, filespec, wrln
set wrln = Document.getElementById(192168165).Value
Set fso192168165 = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("/comment/192168165Comments.txt")
Set f = fso192168165.OpenTextFile(filespec,2)
f.WriteLine wrln
f.Close
End function
%>
</head>
<body>
<input type="text" id="192168165" name="Comment" value=""/><input type="button" value="Comment" onclick="su192168165()"/>
</body>
</html>
这是我的HTML代码,其中包含写注释的位置,点击按钮后需要将注释写入文件,但它不起作用。
我也尝试用sub替换函数,同样的问题。 第8行的代码0.&#34;设置wrln = Document.getElementById(192168165).Value&#34;
请帮忙,让我知道我在这里写的错了。 谢谢 塔尔
答案 0 :(得分:2)
在多个级别上,您所做的事情是不可能的。为了让您快速了解您在这里遇到的问题:
您无法通过简单的onClick方法对服务器文件进行此类写入。
这并不是说这是不可能的,只是你不能以你认为自己可以做到的方式去做。
刚开始,我想从基本的角度强调代码的问题。你的onClick方法试图调用VBScript函数。 这是不可能的。您必须了解的是,VBScript是一种服务器脚本语言,而onClick是一个事件处理程序,通常会触发在客户端上运行的javascript。客户端下载此页面后,服务器已运行此代码并且实际上不再存在。 服务器未将VBScript函数传递给客户端。
希望这是有道理的,并且应该只留下你如何完成你想要执行的任务的问题。我建议的简单方法是为该字段添加一个表单,并让按钮将表单发布回同一页面。然后,您可以使用Request.Form方法调用函数中的字段。您还需要将该函数更改为简单的if条件,该条件将检查您是否从按钮发回。你如何选择这样做取决于你。
假设上述方法对您不起作用。出于某种原因,你不能做回发。出于某种原因,您绝对需要异步执行此操作。在这种情况下,您将需要开发Ajax调用。您可以在PHP中查看此SO链接,以帮助您了解在开始使用此方法时需要了解的内容:Saving a text file on server using JavaScript。
否则你将不得不四处寻找有关如何在经典asp中进行异步回发的教程。祝你好运。