Med OS2ai forsøger Aarhus Kommune og OS2-fællesskabet at give offentlige medarbejdere adgang til generativ AI uden at gøre kommunerne mere afhængige af amerikanske techgiganter.
option explicit ' tvingere programmøren til at definere variablerne, så den kan fange stavefejl
if request.servervariables("request_method") <> "POST" then ' hvis der ikke er sendt data ' der er ikke indtastet noget else dim f, item, i, j ' definer variabler f = "" ' nulstil f for each item in request.form ' løb alle formens elementer igennem if LCase(item) <> "submit" then ' hvis det nuværende felt ikke er submit knappen f = f & item & ":" & request.form(item) & "|" ' forbered en split/array end if next
if f <> "" then ' hvis der er data dim nf, ef, felter ' definer variabler response.write "Du har indtastet følgende data:<br><br>" ' besked til bruger nf = split(f, "|") ' split ved "|", resultat: "Navn:Hans Hansen"
for i = lbound(nf) to ubound(nf) - 1 ' loop alle elementerne i arrayen "nf" igennem ef = split(nf(i), ":") ' split ved ":", resultat: plads 0 = "Navn", plads 1 = "Hans Hansen" response.write ef(0) & ": " & ef(1) & "<br>" ' Udskriv værdi til brugeren felter = felter & "<input type=""hidden"" name=""" & ef(0) & """ value=""" & ef(1) & """>" & vbCrLf ' dan form kode next
response.write "<br>dette er en side med en masse, der ikke skal udskrives..." ' noget dummy kode
' formen: her dannes formen response.write "<form name=""frmPrint"" method=""post"" action=""printside.asp"" target=""_blank"">" & vbCrLf response.write felter response.write "<input type=""submit"" name=""submit"" value=""Print"">" & vbCrLf response.write "</form>" & vbCrLf end if end if
%>
<% option explicit dim item, html html = "" if request.servervariables("request_method") = "POST" then for each item in request.form ' løb alle formens elementer igennem if LCase(item) <> "submit" then ' hvis det nuværende felt ikke er submit knappen html = html & item & ": " & request.form(item) & "<br>" ' udskriv end if next end if %> <html> <head> <title>Print</title> <script language="JavaScript" type="text/javascript"> <!-- function makePrintout() { if (window.print) { /* Avoids errors */ window.print(); } }
//--> </script> </head> <body<% ' Hvis variablen "html" ikke er tom, udskrive indholdet af variablen: if html <> "" then response.write " onload=""makePrintout()""" %>>
<% ' Hvis variablen "html" ikke er tom, udskrive indholdet af variablen: if html <> "" then response.write html else ' brugeren har indtastet adressen direkte, så der er ikke noget at printe response.write "der er intet at printe" end if %>
Jeg har ikke opgivet dig.. Jeg var lige et smut forbi de gamle :-)
Løsningen er simpel.. Check om værdien er tom, inden smides over i html-variablen:
if LCase(item) <> "submit" then ' hvis det nuværende felt ikke er submit knappen ' Hvis værdien ikke er tom, indsættes den i variablen "html", som udskrives senere: if request.form(item) <> "" then html = html & item & ": " & request.form(item) & "<br>" end if
Erstat kodeblokken fra filen printside.asp med ovenstående kodeblok.
Hmm.. Underligt.. den fejl (18/08-2006 14:54:07) har jeg ikke i min fil..
Det er nok Eksperten der har hapset et "-tegn igen.. det gør den faktisk engang imellem.
Synes godt om
Slettet bruger
19. august 2006 - 16:45#12
Så fik jeg kigget på det. Koden på printside.asp ser nu sådan ud: <% option explicit dim item, html html = "" if LCase(item) <> "submit" then ' hvis det nuværende felt ikke er submit knappen ' Hvis værdien ikke er tom, indsættes den i variablen "html", som udskrives senere: if request.form(item) <> "" then html = html & item & ": " & request.form(item) & "<br>" end if
%> <html>
<head> <title>Print</title> <script language="JavaScript" type="text/javascript"> <!-- function makePrintout() { if (window.print) { /* Avoids errors */ window.print(); } }
//--> </script> </head>
<body onload="makePrintout()"> </body> </html> Og jeg får denne fejl
Ahhh.. du har misforstået mit indlæg 18/08-2006 22:14:44.. Det er nok bare mig der ikke fik forklaret mig ordentligt..
Det skal se sådan ud:
for each item in request.form ' løb alle formens elementer igennem if LCase(item) <> "submit" then ' hvis det nuværende felt ikke er submit knappen html = html & item & ": " & request.form(item) & "<br>" ' udskriv end if next
Det var en tilføjelse, og ikke en erstatning af hele For-Next-løkken.
I min kode, hører "item" til en form-collection ("Request.Form"), og du kan derfor ikke bruge Request.Form(item) uden at fortælle den, hvad item er, og hvor den hører til.
Jeg er stadigvæk uden net.. en tekniker kommer forbi i morgen, og så har jeg forhåbentlig net igen..
Der kan være lange svaretider. Jeg vil prøve på at besvare spørgsmål i skoletiden, hvor jeg har net.
Her er den komplette kode for filen printside.asp:
<% option explicit dim item, html html = "" if request.servervariables("request_method") = "POST" then for each item in request.form ' løb alle formens elementer igennem if LCase(item) <> "submit" then ' hvis det nuværende felt ikke er submit knappen if request.form(item) <> "" then html = html & item & ": " & request.form(item) & "<br>" ' udskriv end if next end if %> <html> <head> <title>Print</title> <script language="JavaScript" type="text/javascript"> <!-- function makePrintout() { if (window.print) { /* Avoids errors */ window.print(); } }
//--> </script> </head> <body<% ' Hvis variablen "html" ikke er tom, udskrive indholdet af variablen: if html <> "" then response.write " onload=""makePrintout()""" %>>
<% ' Hvis variablen "html" ikke er tom, udskrive indholdet af variablen: if html <> "" then response.write html else ' brugeren har indtastet adressen direkte, så der er ikke noget at printe response.write "der er intet at printe" end if %>
Sig lige til, hvis du får fejl.
Synes godt om
Slettet bruger
22. august 2006 - 09:35#17
Perfekt, nu virker det. Tusind tak for hjælpen.
Synes godt om
Slettet bruger
24. august 2006 - 10:21#18
Hej thesurfer Jeg håber du har fået dit net til at virke igen. Din kode virker fint, men jeg har brug for lidt mere hjælp? Jeg vil gerne ooprette et nyt spørgsmål. Hvordan får jeg printsiden formateret, således at det ikke er feltnavnene der står der , men en tekst jeg selv bestemmer.
Det viste sig at være menneskefejl bag net-problemet. Stikket var blevet skubbet ud af kontakten, så der var ingen forbindelse..
Ang formatering: Det er simpelt at formatere dataene. Du skal bare sætte dataene op på et format, som du kan nemt arbejde med. Hvis du ikke allerede har den nødvendige programmeringsviden (den basale viden), vil jeg anbefale dig at læse lektionerne på: http://www.html.dk/tutorials/asp/
I starten vil det nok virke langtrukken og kedeligt, men tro mig.. du får meget ud af det.
Det fede ved programmering er, at man selv kan skabe nye ting, og modificere gammel kode.
Jeg vil helt klart anbefale at du læser lektionerne.
Synes godt om
Slettet bruger
24. august 2006 - 11:16#20
Hej Surt når man opdager det er en fejl 40. Jeg kender godt lektionerne du omtaler og jeg har lært meget af dem, men jeg synes ikke lige jeg kan få nogen af dem til at passe med formatering af print?
Jeg skal da gerne hjælpe dig.. give dig hints osv.. men det er dig der skal lave det.. :-)
Synes godt om
Slettet bruger
25. august 2006 - 10:27#24
Hej igen Jeg regner med at det er i denne kode: <%
' Hvis variablen "html" ikke er tom, udskrive indholdet af variablen: if html <> "" then response.write html else ' brugeren har indtastet adressen direkte, så der er ikke noget at printe response.write "der er intet at printe" end if %> jeg skal lave formateringen, men hvis jeg bare sætter response write "navn" ind, skriver den jo bare navn. Det jeg gerne vil er at fjerne feltnavnet navn og skrive Navn: her skal navnet så hentes fra feltet. Kan du give mig et hint om hvordan jeg gør det? Selve layout'et kan jeg godt lave.
Jeg ville nu nok hellere kigge på denne del af koden:
if request.servervariables("request_method") = "POST" then for each item in request.form ' løb alle formens elementer igennem if LCase(item) <> "submit" then ' hvis det nuværende felt ikke er submit knappen if request.form(item) <> "" then html = html & item & ": " & request.form(item) & "<br>" ' udskriv end if next end if
Simple Request.Form og muligvis en array som pladsholder (men det er ikke nødvendigt, det gør det bare nemmere).. man kan hente noget info i visse lektioner..
Du kender antallet af felter og navnene på dem. Smid feltets navn (som du selv vil ha' det) + værdien ind i de respektive variabler
Hvis indholdet af variablen er tomt, udskrives det tomtum (intet, men det er stadigvæk noget)..
Skriv gerne dine teorier, ideer osv, så jeg kan følge din tankegang.. :-)
Synes godt om
Slettet bruger
25. august 2006 - 12:38#28
Jeg må indrømme jeg er på herrens mark, jeg har prøvet mig lidt frem ved at rette/tilføje i denne linie: if request.form(item) <> "" then html = html & item & ": " & request.form(item) & "<br>" ' udskriv men det har ikke lige den ønskede effekt, så jeg arbejder videre
PS: Jeg er muligvis først på igen engang i aften, eller i morgen.. I værste fald bliver det først mandag igen..
- Hav en god weekend.
Synes godt om
Slettet bruger
25. august 2006 - 13:40#31
Tak i lige måde
Synes godt om
Ny brugerNybegynder
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.