hvis du åbner sendmail.asp i samme vindue, kan man ikke gøre det, som du siger... kan du uddybe hvad det skal bruges til, så er det lidt nemmere at komme med en løsning med problemet! :)
Jeg har i mailform.inc følgende ASP-kode: function showform(site) Response.write "<center>" Response.write "<form method='post' name='mail' action='../mail/sendmail.asp' target='_top'>" Response.write "<input type='hidden' value='" & site &"' name='site'>" Response.write "Dit navn:" Response.write "<br><input type='text' size='25' name='name'><br><br>" Response.write "Din email-adresse:" Response.write "<br><input type='text' size='25' name='email'><br><br>" Response.write "Emne:" Response.write "<br><select name='subject' size='1'>" Response.write "<option value='Hilsen'>Hilsen" Response.write "<option value='Forslag'>Forslag til hjemmesiden" Response.write "<option value='Andet'>Andet" Response.write "</select>" Response.write "<br><br>Besked:" Response.write "<br><textarea name='body' cols='60' rows='15' wrap='PHYSICAL'>Skriv din hilsen</textarea>" Response.write "<br><input type='submit' value=' Send '>" Response.write "<br>Der kommer en bekræftelse, så hav tålmodighed!" Response.write "<br><br><input type='reset' value='Slet alt'>" Response.write "</form>" Response.write "</center>" end function
Ovenstående ASP-kode bliver sat ind i på en HTML-side.
Så har jeg en anden fil (sendmail.asp), som formen referer til (altså action='../mail/sendmail.asp'). Deri er der: ... (snip) ... site = Request.Form("site") name = Request.Form("name") senderEmail = Request.Form("email") subject = Request.Form("subject") recipient = site & "@mads-p.dk" body = Request.Form("body") ... (snip) ... Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "mail.mads-p.dk" JMail.Sender = senderEmail JMail.Subject = "Fra: " & name & " - " & subject & " - " & site JMail.AddRecipient recipient JMail.Body = body JMail.Priority = 3 JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR") JMail.Execute Response.write "<H1>Hej " & name & "!</H1> <br>" Response.write "<H2>Din e-mail er sendt til: " & recipient & "</H2> ... (snip) ... Lige _HER_ vil jeg gerne resette formen, hvorfra dette er kaldet, for at indikere, at det er gået godt. Kan det lade sig gøre på en eller anden måde?
Nej du blander tingene lidt sammen. Al din kode i asp foregår serverside. Det med at resette formen foregår klientside. Du kan lave det sådan her, men det har ikke helt den mening du går efter: Response.write "<H2 onload='frames.FrameNavn.document.FormNavn.reset()'>Din e-mail er sendt til: " & recipient & "</H2>". Den vil så resette din form når din browser når til at have loadet det stykke. Men det kræver at din form ligger i en frame der hedder FrameNavn, og at formen hedder formNavn, osv. Den må jo være åben et eller andet sted, for at du kan resette den.
Jamen hvor ligger din form henne? Så vidt jeg kan se, så har du target sat til _top, hvilket gør at din sendmail.asp fylder hele browseren. Så kan brugeren vel ikke se formen mere. Den er ikke i browseren mere. Hvordan og hvorfor vil du så resette den?
Jo, ser du :-) Det er sådan, at når der er sendt en e-mail, så kommer der en bekræftelse på, at den er sendt. Derefter bliver brugeres sendt tilbage igen (med 'java script:history.go(-1)'). Dvs. at formen jo stadig ligger på den gamle side, men stadig er fyldt ud med de oplysninger, der nu bare skal slettes. Det kan også sagtens være, at det er umuligt at gøre, som jeg gerne vil, men det er da et forsøg værd :-) Hvis det er, så er du da velkommen til at prøve, hvordan det er lige nu på: http://www.mads-p.dk/3z/kontakt.asp
OK, så tror jeg selv på, at det kan løses :-) Takker mange mange for hjælpen. Også for din lille test! Laver du ikke lige et svar, så du kan få dine point?
Lige en lille kommentar. Det er response.expires og ikke request.expires... Men men men, det virker faktisk ikke. Problemet må være, at siden ikke genlæses, når man bare sendes tilbage med history.go(-1)
Det første har du ret i, det er mig der ikke har asp'et i noget tid. Du kan løse det andet med at linke tilbage, i stedet for at bruge history.go. du har en refresh ... url = javascript history.go(-1) der kan du bare skrive den rigtige url til siden. altså url = 'http://www.mads-p.dk/3z/kontakt.asp' Så burde den virke. Men jeg troede egentlig at response.expires også virkede med tilbage funktionen. Er du sikker på at du ikke kigger på en gammel version af siden? Prøv for en sikkerheds skyld at lukke alle dine vinduer ned, og røv det hele igen. Jeg mener at response... tvinger browseren til at genindlæse.
hehe, det er helt i orden, din røv :-) (positivt ment!) Jeg er godt klar over, at jeg kan løse det ved at angive den specifikke url, men problemet er bare, at jeg går ind får "re-use", og jeg bruger nemlig samme ASP-kode på flere sider, så jeg vil være lidt ked af at begynde at hardcode det på den måde. Hvis du forstår :-) Hmmm, men det kan nok bare ikke lade sig gøre på andre måder.... :(
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.