24. marts 2004 - 17:41Der er
11 kommentarer og 1 løsning
en simpel funktion der ikke virker
jeg har lavet følgende kode i en fil:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <% If Trim(Request.Form("visForum")) = "boards" Then Response.write visBoards() else If Trim(Request.Form("visForum")) = "strings" Then Response.write visStrings() else If Trim(Request.Form("visForum")) = "posts" Then Response.write visPosts() else response.Redirect(forum.asp) end if %> <html> <head> <title>Forum</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="../css/forum.css" rel="stylesheet" type="text/css"> </head>
<body> <h1>Forum </h1> <% Function visBoards
response.write "<table width='90%' align='center'>" response.write " <tr>" response.write " <td width='15%'>Oprettet d.</td>" response.write " <td width='65%'>Her er en liste over de diskutionsboards der er oprettet" response.write " i forummet.</td>" response.write " <td width='25%'>Moderator:</td>" response.write " </tr>" response.write " <tr>" response.write " <td colspan='3'>" response.write " <table width='100%' class='tabel'><tr>" response.write " <td width='15%'>fsd</td>" response.write " <td width='60%'>fsd</td>" response.write " <td width='25%'>fsd</td>" response.write " </tr></table>" response.write " </td>" response.write " </tr>" response.write " <tr>" response.write " <td> </td>" response.write " <td>Opret ny board</td>" response.write " <td> </td>" response.write " </tr>" response.write "</table>"
End Function
...
Herefter kommer så de følgende to funktioner.
Jeg kalder scriptet fra en formular og jeg kan godt se variablen, hvis jeg skriver den ud ex: "boards". Hvorfor får jeg en fejl i IE når jeg kører dette ?
fejlen lyder bare "'End' var ventet" også henvises til end linien i den sidste funktion.
Jeg er ikke særligt kendt med funktioner, så det er nok en simpel fejl. :)
Men ... en 'Function' bruger du når du vil returnere værdier, mens en 'Sub' bruger du når du bare vil have noget udført. I dette tilfælde, så er det ikke nogen pointe i at lave en Function, når det eneste den laver er at skrive noget ud ;-]
hovsa ... jeg var nok lidt blind da jeg svarede på dit spm ...
En function forventer at du returnere noget, og jeg kan se at det er jo det du ønsker. du skal, istedet for at bruge Response.Write inde i din function, bygge op en string som du returere ... *eller*, at du skifter function ud med 'Sub' og bruger 'Call visBoards()' i stedet for Response.Write visBoards
hvis du kigger lidt på din kode, så vil du se at du i praksis skriver mange Resonse.Write efter hinanden. I din Function bruger du response.Write og dette skriver du ud med Response.Write. Det tilsvarer at du kører denne linie:
Response.Write Response.Write
noget der giver en fejl.
Så ... skift 'Function' ud med 'Sub' og denne linie (og de tilsvarende linier for 'forum' og 'post' ):
yup ... du skal ikke have mellemrum i dine elseif's ... ellers skal du have flere end if's på. Sådan skal den være:
If Trim(Request.Form("visForum")) = "boards" Then Response.write visBoards() elseif Trim(Request.Form("visForum")) = "strings" Then Response.write visStrings() elseif Trim(Request.Form("visForum")) = "posts" Then Response.write visPosts() else response.Redirect(forum.asp) end if
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.