Albert wrote in news:3c8d0e70$0$268$ba624c82@nntp02.dk.telia.net:
>>
>> Hvis du vælger at bruge javascript, så ville jeg foretrække at lave
>> valideringen på indtastningssiden i stedet for på serversiden. Så
>> sparer du dine brugere for mindst to loads af siderne, hvis der er
>> forkerte data i formularen.
>
> Nu vil jeg - spørgeren - lige blande mig lidt
>
> Jeg skal have lavet en db opdatering, og så fortsætte på den side jeg
> slap. Da opdateringen kan blive kaldt mange steder fra, var det
> nemmeste blot at "hoppe tilbage".
jeps.
> Jeg er blevet pålagt at bruge vb,
> og dermed kan jeg ikke bruge javascript funktionen.
Øeh ...
> HTTP_REFERER
> returnerer en blank streng på min testmaskine, så spørgsmålet er, om
> VB har noget lignende history.back/gp(-1) ?
>
Du bør lige gøre dig klart, hvad de enkelte teknologier kan - og hvor de
hører hjemme.
Klientside:
Her kan du lave alle muligt fiksfakserier med javascript og vbscript. Du
kan lave din history.back(-1), document.writeline('');, alert(),focus
(),onHover(),onLoad(),onSubmit() + alle de andre ting man normalt forbinder
med DHTML. I funktionalitet er der ikke den store forskel på vbscript og
javascript/jscript - men vbscript/jscript understøttes kun i IE.
Serverside:
Her kan du bruge vbscript og jscript (som udgangspunkt). Forskellen er, at
klienten (browseren) ikke får dette at se, da de alle afvikles på serveren.
Når den så er færdig med at tygge lidt på det, så sender den et svar til
klienten - typisk HTML, men det kan være alt muligt andet, dvs CVS, XML,
PDF ... you name it. Den kan også sende et miks af HTML og javascript
tilbage til klienten. I dit tilfælde kunne det være:
<%
if [nogle felter er forkerte] then
response.write "<html>"
response.write "<head>"
response.write "<script type='text/javascript'>"
response.write "alert('Du har indtastet noget forkert.');" & VbCrLF
response.write "history.back(-1);" & VbCrLf
response.write "</script>"
response.write "</head>"
response.write "<body>"
response.write "Der skete en fejl - klik på 'Tilbageknappen'"
response.write "</body>"
response.write "</html>"
end if
%>
Al kommunikation fx med database og validering af formfelter sker på
serversiden i enten jscript eller vbscript, og det er kun output fra disse,
der vises til klienten. Du kan så vælge at skrive output til klienten, der
indeholder javascript, men så afvikles dette også først når det når til
klienten.
En nærmere og mere detaljeret gennemgang af hvordan man kommunikerer med en
browser via ASP kræver lidt kendskab til, hvordan man "snakker" via HTTP,
men du kan jo sige til, hvis jeg skal forsøge at uddybe det lidt :)
Hvis det er et krav, at man skal kunne komme tilbage til formen med
indholdet i, så vil jeg bruge metoden skitseret herover - altså validere
input fra formen og i tilfælde af fejl, så sende en smule HTML med
javascript til klienten. Så kan du holde din serverside-kode i vbscript og
så sende javascript til klienten. Du skal dog stadig tage højde for, at der
altså er nogen - inklusive jeg selv - der som udgangspunkt ikke har
aktiveret javascript.
--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|