【问题标题】:how do I set my html form data as variables to write to a file in VBScript?如何将我的 html 表单数据设置为变量以写入 VBScript 中的文件?
【发布时间】:2013-06-17 14:42:29
【问题描述】:

我有一个用 Html 创建的表单和一个 VBScript,用于将文件写入 Pickup 文件夹,以便将电子邮件发送到某个地址。我想用表单数据作为变量替换或添加到写入脚本中的当前字段。我将使用什么 VBscript 来实现这一点? 我还希望通过提交按钮调用脚本我该怎么做?

这是我的表单 HTML:

<!doctype=html>
<html>
</div>
    <body onload="window.resizeTo(750,800)">
      <div align="left">
<font face="calibri" size="4">
<p><b>Thank you!!</b> …For taking the time to offer your subjects to the senior management via this Stakeholder forum. Please fill out the required information on the front sheet below. Use as many additional sheets as necessary.</p>
<form>
<p>
<fieldset>
<font color="0000FF">1)</font > Date of your submission <font color="grey" size="3">(__/__/20__)</font>:<br> <input type="date" STYLE= "background-color: #FFFF00" name="__/__/20__"><br>
</fieldset>
</p>
<p>
<fieldset>
<font color="0000FF">2)</font> Give Your submission a name: <font color="grey" size="3"> (This can be any inoffensive word or phrase at all… even if it doesn’t relate to the nature of the subject) </font><br>
<input type="text" STYLE= "background-color: #FFFF00" name="Submission Name">
</fieldset>
</p>
<p> 
<fieldset>
<font color="0000FF">3)</font> This Submission includes:<br>
<select>
   <option value="Select..."STYLE= "background-color: #FFFF00">Select...</option>
   <option value="Polite and detailed rant (no proposed solution(s) )" STYLE= "background-color: #FFFF00">Polite and detailed rant (no proposed solution(s) )</option>
   <option value="Problem(s) / area(s) for improvement with proposed solution(s)" STYLE= "background-color: #FFFF00">Problem(s) / area(s) for improvement with proposed solution(s)</option>
   <option value="New Idea(s) / Resurrected old idea(s)" STYLE= "background-color: #FFFF00">New Idea(s) / Resurrected old idea(s)</option>
   <option value="Abstract / Other" STYLE= "background-color: #FFFF00">Abstract / Other</option>
 </select> 
</fieldset>
</p>
<p>
<fieldset>
<font color="0000FF">4)</font> Indicate which areas of our business this submission is connected with… <font color="grey" size="3"> (delete as applicable) </font><br>
<select>
   <option value="Select..."STYLE= "background-color: #FFFF00">Select...</option>
   <option value="Customer / Supplier Aspects"STYLE= "background-color: #FFFF00">Customer / Supplier Aspects</option>
   <option value="Financial Performance" STYLE= "background-color: #FFFF00">Financial Performance</option>
   <option value="Innovation and growth" STYLE= "background-color: #FFFF00">Innovation and growth</option>
   <option value="Internal Business/Systems" STYLE= "background-color: #FFFF00">Internal Business/Systems</option>
 </select> 
</fieldset>
</p>
<p>
<fieldset>
<font color="0000FF">5)</font> Personal Details:<font color="grey" size="3"> (optional) </font><br>
First name: <input type="text" STYLE= "background-color: #FFFF00" name="firstname"><br>
  Last name: <input type="text" STYLE= "background-color: #FFFF00" name="lastname"><br>
   Contact Number: <input type="text" STYLE= "background-color: #FFFF00" name="contactnumber">
</fieldset>
</p>
<p>
<fieldset>
<font color="#0000ff">6)</font> The details of your submission… remembering to avoid:<br>
<ul>
 <li>Cases that are associated with just one single individual. These type of subjects are best dealt with outside of this forum</li>
 <li>Vulgarities and or insults.</li>
 </ul> 
<textarea rows="10" cols="50" col width= "100" STYLE= "background-color: #FFFF00">Dear senior management...
</textarea>

这是我用于写入文件的 VBscript:

Set objFSO=CreateObject("Scripting.FileSystemObject")

' How to write file
outFile="\\location\file.txt"
Set objFile = objFSO.CreateTextFile(outFile,True)
objFile.Write "to:email1@mail.com" & vbCrLf
objFile.Write "from:email2@mail.com" & vbCrLf
objFile.Write "subject:This is a test." & vbCrLf
objFile.Write ("") & vbCrLf
objFile.Write "This is the body of the email." & vbCrLf
objFile.Close

【问题讨论】:

  • 表单与您要编写的文件的关系如何?
  • 该表单是我要写入文件的内容 我希望将其写入拾取文件夹中的文本文件,以便通过那里自动通过电子邮件发送给电子邮件客户端

标签: html variables vbscript writetofile


【解决方案1】:

在 VBScript 中创建多行字符串没有简单的方法。您必须为此使用字符串连接:

form = "<!doctype=html>" & vbNewLine _
  & "<html>" & vbNewLine _
  & "</div>" & vbNewLine _
  & "    <body onload=""window.resizeTo(750,800)"">" & vbNewLine _
  & "      <div align=""left"">" & vbNewLine _
  & "<font face=""calibri"" size=""4"">" & vbNewLine _
  ...

字符串中的双引号必须通过加倍来转义(见上文)。但是,根据我的经验,这种转义很容易出错。由于 HTML 允许在属性值周围加上单引号,因此使用这些会是更好的选择:

form = "<!doctype=html>" & vbNewLine _
  & "<html>" & vbNewLine _
  & "</div>" & vbNewLine _
  & "    <body onload='window.resizeTo(750,800)'>" & vbNewLine _
  & "      <div align='left'>" & vbNewLine _
  & "<font face='calibri' size='4'>" & vbNewLine _
  ...

或者您可以从模板文件中读取表单 HTML 代码:

Set fso = CreateObject("Scripting.FileSystemObject")
form = fso.OpenTextFile("C:\path\to\form.txt").ReadAll

这样,您可以将表单写入输出文件,如下所示:

objFile.WriteLine form

旁注:您可以简单地使用.WriteLine "...",而不是使用.Write "..." &amp; vbCrLf

【讨论】:

  • 那么我是在编辑我的 HTML 代码以使其在第二个脚本中看起来像你的,还是以所述格式再次添加我的 html 代码?
  • “再次添加”是什么意思?如果您想将 HTML 代码写入文件,请使用建议的 3 种方法之一并将变量写入文件。
  • 我的意思是我希望它通过一个按钮提交,所以我需要编写一个按钮来调用脚本吗?我是否需要以下面的变量 vbscript 格式复制我的 html 代码: Set objFSO=CreateObject("Scripting.FileSystemObject")
  • 也许吧。您没有提供足够的上下文来确定答案。
  • 如果代码应该在客户端运行,您的按钮可以触发一个函数,该函数通过 DOM 检索表单的 HTML 并将其保存到文件中。或者,如果代码应该在服务器端运行,您可以将表单存储在一个变量中,并使用该变量来创建页面和发送。但是,发送整个表单而不仅仅是发送值是毫无意义的开销。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 2021-12-27
  • 2016-07-01
相关资源
最近更新 更多