查找复选框值,写入XML结果

查找复选框值,写入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")

我正在创建一个每周编写HTML电子邮件的模板(因此文件名很奇怪),我使用ASP和XML作为后端。XML是完美的,但ASP不是

这里我要做的是创建一个XMl节点,该节点的值为notchecked和checked,具体取决于表单上的复选框是否选中

我试过使用

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中的复选框是否被选中,但它没有检测到更改。我应该如何改变它呢?