Avatar billede sapworld Nybegynder
04. september 2003 - 14:25 Der er 11 kommentarer og
1 løsning

Data mellem 2 sider

Hej
Jeg vil overføre data mellem 2 sider, for at man kan godkende dataene på side 2.

Er det muligt at overføre data fra en form på side1.asp til side2. asp, og i givet fald hvordan?

Side 2 behøver ikke være en form, og det er ikke krævet at der kan rettes i data, men der skal være en submit knap der kan sende informationen videre med en mail, så dataene skal på en eller anden måde være tilgængelige på side2.asp

Hilsen

Kim
Avatar billede fewcastle Nybegynder
04. september 2003 - 14:31 #1
Hmm hvis du bruger frontpage fra office pakken, markerer du bare alt hvad du vil have på side2.. inkl forms og det hele... trykker ctrl+c ... og på side 2 trykker du ctrl+v så sætter den det hele ind identisk.
Avatar billede m_skau Nybegynder
04. september 2003 - 14:48 #2
Kim, det er et meget grundlæggende spørgsmål, hvis jeg forstår dig rigtigt. Der er flere måder at gøre det på:
Hvis du bare vil overføre data fra en side til en anden, så kan du:
ENTEN: Appende dataene til url'en på side 2 i side 1's kald til denne, som en såkaldt querystring. Har du eksempelvis en variabel minvar, så gør kommer du den på url'en sådan her: "side2.asp?minvar=" & minvar (f.eks. <%response.redirect("side2.asp?minvar=" & minvar)%>
og i side2 kan du så "hente" den vha request.querystring("minvar"), f.eks:
<%minvar = request.querystring("minvar").
ELLER du kan bruge session variable, f.eks. skriver du i side 1 session("minvar") = 123 - i side 2 kan du så referere til denne som enhver anden variabel, f.eks mitresultat = 15 + session("minvar")

HVIS du derimod skal have fat i FORM data, som dit spørgsmål mere specifikt går på, så skal du:
i Action for formen på side1 sætte side2
  <form METHOD="POST" ACTION="side2.asp">
Navngive dine formularfelter, f.eks:
  <textarea NAME="mintekst" ROWS="5" COLS="35"></textarea>
Tilføje en submit knap:
  <input TYPE="SUBMIT" VALUE="Send Form">
Og afslutte formen:
  </form>

I side2 får du i asp-koden adgang til dataene fra side1's form vha. request.form("formfeltnavn"), f.eks:
  <%response.write("mintekst")%>
Avatar billede m_skau Nybegynder
04. september 2003 - 14:49 #3
Sidste linie skulle være <%response.write(request.form("mintekst"))%>
Avatar billede m_skau Nybegynder
04. september 2003 - 14:57 #4
ENDELIG vil formulardataene blive appendet til querystringen, hvis du sætter formens method til "get" i side1:
  <form METHOD="GET" ACTION="side2.asp">
i side2 kan du nu tilgå formdataene vha request.querystring:
  <%response.write(request.querystring("mintekst"))%>
Avatar billede sapworld Nybegynder
04. september 2003 - 15:17 #5
Hej
Hvis det er grundlæggende, så er jeg glad for at jeg ikke spurgte om noget svært :)
Kanon - Jeg prøver det lige.
Forresten:
Når jeg sender en mail med objmail benytter jeg:
<form method="POST" action="--WEBBOT-SELF--"

Når jeg skriver til en access database bruger jeg:
<form method="POST" action="display1.asp"

Jeg kan derfor ikke både sende en mail og skrive til en database fra samme side - eller kan jeg?
Kim
Avatar billede sapworld Nybegynder
04. september 2003 - 15:46 #6
Det virker, men hvad hvis dataene skal "lande" i en form på side 2?

Er det muligt

Kim
Avatar billede m_skau Nybegynder
04. september 2003 - 15:53 #7
Du kan godt både sende en mail og skrive til en database fra samme side. Simpleste løsning er at have 2 forms på siden (det må man gerne).
Hvis dataene skal lande i formen på side 2, så skal du bare bruge noget i retning af <%response.write(request.querystring("mintekst"))%> på side 2, der hvor formens data skal stå. F.eks:
  <textarea NAME="mintekst" ROWS="5" COLS="35"><%response.write(request.querystring("mintekst"))%></textarea>
Avatar billede sapworld Nybegynder
04. september 2003 - 15:59 #8
Det virker også - kanon  :)
Hvis man har 2 forms på siden - er man så ikke nød til at taste de samme data in 2 gange (ind i begge forms)?

Kim
Avatar billede sapworld Nybegynder
04. september 2003 - 16:20 #9
Og det er så kun den ene man kan trykke på save/submit knappen på - medmindre man er rigtig hurtig.  :) eller??

Kim
Avatar billede m_skau Nybegynder
04. september 2003 - 16:38 #10
Hvorfor sender du en mail FØR din godkendelse på side 2? Et det nødvendigt, eller vil du ikke først have data til mail/db når de er godkendt? Gør f.eks sådan her:

side1.asp
<form method="POST" action="display1.asp">

display1.asp
<%if (dine data er OK) then%>
  <%'skriv data i database%>
  <form method="POST" action="--WEBBOT-SELF--">
<%else%>
  <%'giv adgang til at rette data, og til at poste dem igen til den SAMME side, der atter checker dem%>
  <form method="POST" action="display1.asp">
<%end if%>


Er det til at forstå
Avatar billede sapworld Nybegynder
04. september 2003 - 19:50 #11
Hmm jeg kan godt fornemme hvad du mener.
Egentlig ville jeg helst sende mail og skrive til database på én gang, men det kan jeg få til at lykkedes pga. jeg skal bruge action="--WEBBOT-SELF--">
til at sende mail og action="display1.asp" til at skrive til database. Derfor tænkte jeg at man kunne følgende:
Når man gemte side1.asp, så blev mailen sendt, og når man gente side2.asp, så blev der skrevet til database vha. side3.asp
Du kan se den oprindelige kode her:
side1.asp:
<%@ Language=VBScript %>
<%
    Dim strqInitials, strqModule, strqSchedule, strqStatus, objMail, strqBody
     
    strqInitials = Trim(Request.Form("initials"))
    strqModule = Trim(Request.Form("module"))
    strqSchedule = Trim(Request.Form("schedule"))
    strqStatus = Trim(Request.Form("status"))

    'Hvis felterne er udfyldt, så gør et eller andet med data'ene....
      If strqInitials <> "" Then

        Set objMail = Server.CreateObject("CDONTS.NewMail")
        objMail.From =  strqInitials + "@sapworld.dk"
        objMail.to = "kim@sapworld.dk"
        objMail.Subject = "Registration"
        strqBody = strqBody + "User Initials: " + strqInitials + vbNewLine
        strqBody = strqBody + "Module: " + strqModule + vbNewLine
        strqBody = strqBody + "Schedule: " + strqSchedule + vbNewLine
        strqBody = strqBody + "Status: " + strqStatus + vbNewLine
        objMail.Body = strqBody
        objMail.Send
       
        Set objMail = Nothing

        Response.Redirect "side2.asp"    'Husk at oprette siden result.asp
    End If

%>

Side2.asp

<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open="hcb_scales_tutorial"
strSQL = "Insert into personer (subject, initials) values('" & request.Form("Course_Week") & "', '" & request.Form("Comments") & "')"
objConn.Execute(strSQL)
objConn.Close
%>

Kan jeg få dethele sendt og gemt i databaseb på én gang?

hilsen

Kim
Avatar billede sapworld Nybegynder
07. september 2003 - 00:08 #12
Det er nu lykkesdes - du fik sendt mig i den rigtige retning.

Takker

Kim
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