Avatar billede olhansen Nybegynder
03. april 2002 - 16:42 Der er 4 kommentarer og
1 løsning

Fra form til XML

Hej!

Input skal komme fra en form i html, og vha ASP konverteres til XML.

Hvordan gør jeg det?

Det ser ud til at DOMDocument kan loade selve request objektet i ASP, men det dur altså ikke.

Jeg har prøvet at laven en side med 2 frames, hvor den ene indeholder en form, som i sin action parameter skal kalde en ASP (som køres i den anden frame).

I denne ASP gør jeg således:

Dim doc
set doc=server.createobject("MSXML.DomDocument")
doc.async=false
doc.load(Request)
doc.save("test.xml")

test.xml bliver skrevet, men den er tom.
Avatar billede medions Nybegynder
08. april 2002 - 16:30 #1
Dette kan vidst hjælpe dig en hel del...:


<% @ Language = "VBScript" %>
<% Option Explicit
  Response.Expires = 0

If Request.ServerVariables("CONTENT_LENGTH") = 0 Then
%>
    <HTML>
    <HEAD>
    <TITLE>Gæstebogen - Opret Besked.</TITLE>
      <LINK REL="STYLESHEET" HREF="./stil.css" TYPE="text/css" />
    </HEAD>   
    <BODY BGCOLOR="Wheat">
    <DIV ALIGN="Center">
    <FONT FACE="Verdana" COLOR="DarkGreen" SIZE="3">
    <B>Opret Besked</B>
    </FONT>
    <FORM ACTION="<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">
    <TABLE BORDER="1" WIDTH="500">
    <TR>
        <TD WIDTH="100" ALIGN="Right">Navn:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Navnet" SIZE="35"></INPUT></TD>
    </TR>
    <TR>
        <TD WIDTH="100" ALIGN="Right">E-mail:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Mailen" SIZE="35"></INPUT></TD>
    </TR>
    <TR>
        <TD WIDTH="100" ALIGN="Right">Homepage:</TD>
        <TD><INPUT TYPE="TEXT" NAME="Webpage" SIZE="35"></INPUT></TD>
    </TR>
    <TR>
        <TD WIDTH="100" ALIGN="Right">Besked:</TD>
        <TD><TEXTAREA NAME="Besked" COLS="45" ROWS="10" WRAP></TEXTAREA></TD>
    </TR>
    <TR>
        <TD COLSPAN="2" ALIGN="Center"><INPUT TYPE="SUBMIT" VALUE="Send"><INPUT TYPE="RESET" VALUE="Slet Alt"></TD>
    </TR>
    </TABLE>   
    <A HREF="../index.asp">Startside</A>|<A HREF="./guestbook.xml">Gæstebogen</A>
    <P/>
    <FONT FACE="Verdana" SIZE="2">
    Der kan ikke bruges HTML-tags i beskeden.
    </FONT>
    </DIV>
    </BODY>
    <HTML>

<% ElseIf Request.Form("Navnet") = "" Then %>

    <HTML>
    <HEAD>
    <TITLE>Fejl i indtastning.</TITLE>
    <LINK REL="STYLESHEET" HREF="./stil.css" TYPE="text/css" />
    </HEAD>
    <BODY BGCOLOR="Wheat">
    <DIV ALIGN="Center">
    <FONT FACE="Verdana" COLOR="DarkGreen" SIZE="4">
    Du skal minimum skrive dit navn.
    </FONT>
    <P/>
    <A HREF="./OpretBesked.asp">Prøv igen</A> | <A HREF="./Guestbook.xml">Gå til Gæstebogen</A>
    </DIV>
    </BODY>
    </HTML>

<%Else

Dim XMLNode, objXML, objTemp, objBesked, objRoot, StrSti
Dim TempArray, Tekst, L, Linjer, AntalLinjer,Nylinje, TimeNow




TimeNow = Now

Nylinje = chr(13) & chr(10)

Tekst = Replace(Request.Form("Besked"),NyLinje,"##Y")

AntalLinjer = 1

For L = 1 to Len(Tekst)
    If Mid(Tekst, L, 3) = "##Y" Then AntalLinjer = AntalLinjer +1   
Next

TempArray = Split(Tekst,"##Y")

Linjer =""

L=0

For L = 0 to AntalLinjer - 1
    if AntalLinjer = 0 Then Exit For
    Linjer = Linjer & "<LINJE>" & TempArray(L) & "</LINJE>" & chr(13) & chr (10)
Next

XMLNode = "<VISITOR>"                                      & Chr(13) & Chr(10) & Chr(9) & _
        "<NAME>"    & Request.Form("Navnet")  &  "</NAME>"    & Chr(13) & Chr(10) & Chr(9) & _
        "<DATO>"    & TimeNow                &  "</DATO>"    & Chr(13) & Chr(10) & Chr(9) & _
        "<EMAIL>"  & Request.Form("Mailen")  &  "</EMAIL>"    & Chr(13) & Chr(10) & Chr(9) & _
        "<HOMEPAGE>"& Request.Form("Webpage") &  "</HOMEPAGE>" & Chr(13) & Chr(10) & Chr(9) & _   
        "<MESSAGE>" & Chr(13) & Chr(10) & Chr(9) & Linjer & Chr(13) & Chr(10) & Chr(9) & "</MESSAGE>"  & Chr(13) & Chr(10) & _
      "</VISITOR>"

strSti = Server.MapPath("Guestbook.xml")

set objXML  = Server.CreateObject("Microsoft.XMLDOM")
set objTemp = Server.CreateObject("Microsoft.XMLDOM")

objXML.load(strSti)

set objRoot = objXML.selectSingleNode("BOOK")

objTemp.loadXML(XMLNode)

set objBesked = objTemp.documentElement

objRoot.insertBefore objBesked, objRoot.childNodes(0)

objXML.save(strSti)

%>
<HTML>
<HEAD>
<TITLE>Besked er oprettet.</TITLE>
<LINK REL="STYLESHEET" HREF="./stil.css" TYPE="text/css" />
</HEAD>
<BODY BGCOLOR="Wheat">
<DIV ALIGN="Center">
<FONT FACE="Verdana" COLOR="DarkGreen" SIZE="4">
Din besked er blevet oprettet!
</FONT>
<FONT FACE="Verdana">
<P/>
<A HREF="../index.asp">Gå til startsiden</A> | <A HREF="./Guestbook.xml">Gå til Gæstebogen</A>
</FONT>
</DIV>
</BODY>
</HTML>
<%End If %>



//>Rune
Avatar billede medions Nybegynder
14. april 2002 - 11:11 #2
Ups.. var et svar...!

//>Rune
Avatar billede olhansen Nybegynder
15. april 2002 - 08:19 #3
medions: din løsning er OK. Havde dog håbet på noget mere simplet.
Avatar billede medions Nybegynder
15. april 2002 - 11:30 #4
olhansen> :-) Fair nok, well, det bliver jo meget mere simpelt hvis du fjerner alle tabels'ne ;-)

Thx 4 Poinz
//>Rune
Avatar billede nstenberg Nybegynder
17. april 2002 - 12:01 #5
En lille fodnote: Jeg ville ændre de store bogstaver i dine tags, til små...

// Nikolaj Stenberg
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester