查找复选框值,写入XML结果
我正在创建一个每周编写HTML电子邮件的模板(因此文件名很奇怪),我使用ASP和XML作为后端。XML是完美的,但ASP不是 这里我要做的是创建一个XMl节点,该节点的值为notchecked和checked,具体取决于表单上的复选框是否选中 我试过使用查找复选框值,写入XML结果,xml,forms,asp-classic,checkbox,Xml,Forms,Asp Classic,Checkbox,我正在创建一个每周编写HTML电子邮件的模板(因此文件名很奇怪),我使用ASP和XML作为后端。XML是完美的,但ASP不是 这里我要做的是创建一个XMl节点,该节点的值为notchecked和checked,具体取决于表单上的复选框是否选中 我试过使用 If Request.QueryString("promotioncheck") = "on" Then Set objField = objDom.createElement("promotioncheck")
If Request.QueryString("promotioncheck") = "on" Then
Set objField = objDom.createElement("promotioncheck")
objField.Text = "checked"
objRecord.appendChild objField
Else
Set objField = objDom.createElement("promotioncheck")
objField.Text = "notchecked"
objRecord.appendChild objField
End If
但是,当我这样做时,它不会拾取更改,只会在选中复选框的情况下对输出进行勾选
这是我的ASP:
<%
If Request.Form("hidden") = "true" Then
Dim objDom
Dim objRoot
Dim objRecord
Dim objField
Dim objFieldValue
Dim objattID
Dim objattTabOrder
Dim objPI
Dim blnFileExists
Dim x
Dim z
Set objDom = server.CreateObject("Microsoft.XMLDOM")
objDom.preserveWhiteSpace = True
blnFileExists = objDom.LoadXML(server.mappath("./")& "/eg"&Day(Date)&"_"&Month(Date)&".xml")
If blnFileExists = True Then
For x = 1 To Request.Form.Count
If instr(1,Request.Form.Key(x),"hidden") = 0 Then
Set z = objDom.selectNodes("eg/stories/"&Request.Form.Key(x))
Response.Write(Request.Form.Key(x))
z.innerText = Request.Form(x)
End If
Next
Else
Set objRoot = objDom.createElement("eg")
objDom.appendChild objRoot
Set objRecord = objDom.createElement("stories")
objRoot.appendChild(objRecord)
For x = 1 To Request.Form.Count
If instr(1,Request.Form.Key(x),"hidden") = 0 Then
Set objField = objDom.createElement(Request.Form.Key(x))
objField.Text = Request.Form(x)
objRecord.appendChild objField
End If
Next
If Request.QueryString("promotioncheck") = "on" Then
Set objField = objDom.createElement("promotioncheck")
objField.Text = "checked"
objRecord.appendChild objField
Else
Set objField = objDom.createElement("promotioncheck")
objField.Text = "notchecked"
objRecord.appendChild objField
End If
End If
If blnFileExists = False then
Set objPI = objDom.createProcessingInstruction("xml", "version='1.0'")
objDom.insertBefore objPI, objDom.childNodes(0)
End If
objDom.save (server.mappath("./")& "/eg"&Day(Date)&"_"&Month(Date)&".xml")
Set objDom = Nothing
Set objRoot = Nothing
Set objRecord = Nothing
Set objField = Nothing
Set objFieldValue = Nothing
Set objattID = Nothing
Set objattTabOrder = Nothing
Set objPI = Nothing
On Error Resume Next
End If
%>
这是带有复选框的HTML表单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>EG Editor</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
var number_of_nibs = 1;
function addnib(){
number_of_nibs ++;
var title = document.createElement('h2');
title.innerHTML = "Story" + number_of_nibs;
var nibformtitle = document.createElement('p');
nibformtitle.innerHTML = "Title:<br><input type=\"text\" name=\"nib"+ number_of_nibs +"_title\" style=\"width: 400px;\">";
var nibformcontent = document.createElement('p');
nibformcontent.innerHTML = "Content:<br><textarea cols=\"22\" rows=\"7\" name=\"nib"+ number_of_nibs + "_content\" style=\"width: 400px;\"></textarea>";
var smallnewsdiv = eval("document.getElementById('smallnews')");
smallnewsdiv.appendChild(title);
smallnewsdiv.appendChild(nibformtitle);
smallnewsdiv.appendChild(nibformcontent);
}
</script>
</head>
<body>
<h1>EG Editor</h1>
<p>Welcome to the EG Editor, your one stop shop for making your EG email</p>
<p>Please Fill out the form like you would any other internet form, press save when your done</p>
<p>Once you've saved your content, you can then click on the link to the finished product, save the file as HTML (file->save as->html only option when saving), open in word and then Send to yourself (File->Send To->Mail Recipient) and biggity-bam you've got your issue of EG</p>
<h2>Main Stories</h2>
<p>Here is where you put in your stuff for your Main stories</p>
<form name="form1" action="Egbuilder.asp" method="post">
<table>
<tr>
<td>Story One:</td>
<td>Title: <input type="text" name="mainstory1_title" style="width: 220px"></td>
<td>Content: <textarea cols="22" rows="7" name="mainstory1" style="width: 220px;"> </textarea></td>
</tr>
<tr>
<td>Story Two:</td>
<td>Title: <input type="text" name="mainstory2_title" style="width: 220px"></td>
<td>Content: <textarea cols="22" rows="7" name="mainstory2" style="width: 220px;"></textarea></td>
</tr>
<tr>
<td>Story Three:</td>
<td>Title: <input type="text" name="mainstory3_title" style="width: 220px"></td>
<td>Content: <textarea cols="22" rows="7" name="mainstory3" style="width: 220px;"></textarea></td>
</tr>
<tr>
<td>Story Four:</td>
<td>Title: <input type="text" name="mainstory4_title" style="width: 220px"></td>
<td>Content: <textarea cols="22" rows="7" name="mainstory4" style="width: 220px;"></textarea></td>
</tr>
</table>
<h2>Promotions</h2>
<p>If there's a promotion this week then tick the 'show promotion' box, Just pop your words into the box and then copy the Intranet link into the link box.</p>
<p>Show Promotion? <input type="checkbox" name="promotioncheck" ></p>
<p>Banner Text:<br>
<textarea cols="22" rows="7" name="promotiontext" style="width: 400px;"></textarea></p>
<p>Intranet Link: <br>
<input type="text" name="promotionlink" style="width: 400px"></p>
<div id="smallnews">
<h2>News in Briefs</h2>
<p>Here is where you add your smaller stories, you can add as many as you want. Just click the green plus button to add another box</p>
<h3>Story 1</h3>
<p>Title:<br>
<input type="text" name="nib1_title" style="width: 400px"></p>
<p>Content:<br>
<textarea cols="22" rows="7" name="nib1_content" style="width: 400px;"></textarea>
</p>
</div>
<p><a href="Javascript:addnib()" title="Press this button to add another button"><img src="images/add.jpg" alt="add button" style="width: 30px; height: 30px; border: 0px">Add another Story</a><input type="hidden" name="hidden" value="true"><input style="margin-left: 200px;" type="submit" value="Save" ></p>
</form>
</body>
</html>
编辑
变量个数=1;
函数addnib(){
_nibs++的数量;
var title=document.createElement('h2');
title.innerHTML=“Story”+笔尖数量;
var nibformtitle=document.createElement('p');
nibformtitle.innerHTML=“Title:
”;
var nibformcontent=document.createElement('p');
nibformcontent.innerHTML=“内容:
”;
var smallnewsdiv=eval(“document.getElementById('smallnews')”);
smallnewsdiv.appendChild(标题);
smallnewsdiv.appendChild(nibformtitle);
smallnewsdiv.appendChild(nibformcontent);
}
编辑
欢迎来到EG编辑器,您制作EG电子邮件的一站式商店
请像填写任何其他互联网表单一样填写表单,完成后按save
保存内容后,您可以单击指向成品的链接,将文件另存为HTML(保存时选择file->save as->HTML only),在word中打开,然后发送给您自己(file->Send to->Mail Recipient)和biggity bam您已经收到了您的问题
主要故事
这里是你为你的主要故事放东西的地方
故事一:
标题:
内容:
故事二:
标题:
内容:
故事三:
标题:
内容:
故事四:
标题:
内容:
促销
如果本周有促销活动,则勾选“展示促销”框,只需将您的文字插入框中,然后将内部网链接复制到链接框中
表演推广
横幅文本:
内部网链接:
简讯
这里是你添加小故事的地方,你可以添加任意数量的故事。只需单击绿色加号按钮即可添加另一个框
故事1
标题:
内容:
我相信这真的很简单,我只是错过了一些基本的东西,但任何帮助都将不胜感激。谢谢您当前正在从Querystring检索promotioncheck,但您正在发布表单,因此该值将不在Querystring集合中 而是从表单集合中检索值,如下所示:
Request.Form("promotioncheck") = "on"
我记不起在classic asp中未设置值属性的复选框的默认返回值是什么,因此将返回“on”复选框。您当前正在从Querystring检索promotioncheck,但您正在发布表单,以便该值不在Querystring集合中 而是从表单集合中检索值,如下所示:
Request.Form("promotioncheck") = "on"
我记不起classic asp中未设置值属性的复选框的默认返回值是什么,因此将返回“on”复选框。请不要发布您的全部代码,让人们知道您想做什么。据我所知,你甚至没有问一个真正的问题。更多的描述,更少的代码。对不起,我将对此进行扩展。基本上,我的ASP代码只是循环遍历所有提交的表单元素,然后从中创建一个XML文件。我尝试添加一种方法,通过添加Request.QueryString(“promotioncheck”)if语句来检查HTML中的复选框是否被选中,但它没有检测到更改。我应该如何改变它呢?请不要发布你的全部代码,让人们知道你想做什么。据我所知,你甚至没有问一个真正的问题。更多的描述,更少的代码。对不起,我将对此进行扩展。基本上,我的ASP代码只是循环遍历所有提交的表单元素,然后从中创建一个XML文件。我尝试添加一种方法,通过添加Request.QueryString(“promotioncheck”)if语句来检查HTML中的复选框是否被选中,但它没有检测到更改。我应该如何改变它呢?