Avatar billede daiz Nybegynder
24. marts 2004 - 17:41 Der 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>&nbsp;</td>"
    response.write "    <td>Opret ny board</td>"
    response.write "    <td>&nbsp;</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. :)
Avatar billede nute Nybegynder
24. marts 2004 - 17:43 #1
du mangler parenteser

Function visBoards()

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 ;-]
Avatar billede nute Nybegynder
24. marts 2004 - 17:44 #2
desuden mangler du "" omkring din side, i denne linie:

response.Redirect(forum.asp)

Den skal se sådan ud:

response.Redirect("forum.asp")
Avatar billede daiz Nybegynder
24. marts 2004 - 17:45 #3
Jeg takker tester lige .... så kan du svare imens :p
Avatar billede daiz Nybegynder
24. marts 2004 - 17:46 #4
Mmm stardig samme fejl
Avatar billede nute Nybegynder
24. marts 2004 - 17:51 #5
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' ):

Response.write visBoards()

ud med

Call visBoards()

/nute
Avatar billede daiz Nybegynder
24. marts 2004 - 17:55 #6
mmm stadig samme problem
Avatar billede nute Nybegynder
24. marts 2004 - 17:57 #7
så er der noget andet galt på din side ...

/nute
Avatar billede daiz Nybegynder
24. marts 2004 - 17:58 #8
:(
Avatar billede daiz Nybegynder
24. marts 2004 - 17:58 #9
nu ser den sådan ud ...


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
    dim boardId, strId

    If Trim(Request.Form("visForum")) = "boards" Then
        call visBoards()
    else If Trim(Request.Form("visForum")) = "strings" Then
'        Trim(Request.Form("boardId")) = boardId
        call visStrings(boardId)
    else If Trim(Request.Form("visForum")) = "posts" Then
'        Trim(Request.Form("strId")) = strId
        call visPosts(strId)
    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 for dreamtheater.dk</h1>
<%
    Sub 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>&nbsp;</td>"
    response.write "    <td>Opret ny board</td>"
    response.write "    <td>&nbsp;</td>"
    response.write "  </tr>"
    response.write "</table>"
   
    End Sub
   
    Sub visStrings()

    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 tr&aring;de der er oprettet i dette board(XXX).</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>&nbsp;</td>"
    response.write "    <td>Opret ny tr&aring;d</td>"
    response.write "    <td>&nbsp;</td>"
    response.write "  </tr>"
    response.write "</table>"
   
    End Sub

    Sub visPosts()

    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 posts der er oprettet i denne tr&aring;d(XXX).</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>&nbsp;</td>"
    response.write "    <td>Opret nyt post</td>"
    response.write "    <td>&nbsp;</td>"
    response.write "  </tr>"
    response.write "</table>"
   
    End Sub   
%>
</body>
</html>
Avatar billede nute Nybegynder
24. marts 2004 - 18:00 #10
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

/nute
Avatar billede daiz Nybegynder
24. marts 2004 - 18:02 #11
Så takker jeg, nu virker det :p så skal du bare svare
Avatar billede nute Nybegynder
24. marts 2004 - 22:57 #12
fino :-)

svar
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