从onclick按钮调用asp中的函数

时间:2014-11-24 13:42:57

标签: html function button vbscript asp-classic

我知道有很多相关内容,但我尝试了很多这些选项并且没有成功,请告诉我这里做错了什么:

   <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;

请帮忙,让我知道我在这里写的错了。 谢谢 塔尔

1 个答案:

答案 0 :(得分:2)

在多个级别上,您所做的事情是不可能的。为了让您快速了解您在这里遇到的问题:

您无法通过简单的onClick方法对服务器文件进行此类写入。

这并不是说这是不可能的,只是你不能以你认为自己可以做到的方式去做。

刚开始,我想从基本的角度强调代码的问题。你的onClick方法试图调用VBScript函数。 这是不可能的。您必须了解的是,VBScript是一种服务器脚本语言,而onClick是一个事件处理程序,通常会触发在客户端上运行的javascript。客户端下载此页面后,服务器已运行此代码并且实际上不再存在。 服务器未将VBScript函数传递给客户端

希望这是有道理的,并且应该只留下你如何完成你想要执行的任务的问题。我建议的简单方法是为该字段添加一个表单,并让按钮将表单发布回同一页面。然后,您可以使用Request.Form方法调用函数中的字段。您还需要将该函数更改为简单的if条件,该条件将检查您是否从按钮发回。你如何选择这样做取决于你。

假设上述方法对您不起作用。出于某种原因,你不能做回发。出于某种原因,您绝对需要异步执行此操作。在这种情况下,您将需要开发Ajax调用。您可以在PHP中查看此SO链接,以帮助您了解在开始使用此方法时需要了解的内容:Saving a text file on server using JavaScript

否则你将不得不四处寻找有关如何在经典asp中进行异步回发的教程。祝你好运。