Toon posts:

[asp] probleem met menu's en type mismatch

Pagina: 1
Acties:

Verwijderd

Topicstarter
Heren, volgende probleem:
in de tbl_users zitten de usersopgeslagen, onder meer met of ze een menu uitgeklapt of ingeklapt willen zien (boolean(j/n)-veld).
Die velden zien er als volgt Menu1, Menu2, Menu3 etc

Nu wil ik handig in mijn pagina

1 Menu_1=RSUsers("Menu1")
2 Menu_2=RSUsers("Menu2")
3 Menu_3=RSUsers("Menu3")
4
5 For i=1 to 3
6 MenuItem="Menu_" & i --[gewijzigd naar remarks hier, no luck]--
7
8 if MenuItem then
9 [het mooie menu-uitgeklapt]
10 end if
11
12 Next

Nu geeft ie de foutmelding op regel [hersteld naar]: 8;

Microsoft VBScript runtime error '800a000d'
Type mismatch: '[string: "Menu_1"]'

Nu mijn vrij logische vraag: waarom type mismatch?
Die variabele bestaat toch? En is een Y/N veld.

Thx

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Ik heb het vage vermoeden dat ik een stukje code (vooral het stukje code met de foutmelding mis..).. Regel 7 zit de fout, maar regel 7 is in het verhaaltje leeg. Kan je aangeven WAT regel 7 is?

Op de gok: een type string is niet gelijk aan een type boolean; je kan een string dus niet vergelijken met een boolean.

Verder is regel 6 niet afgesloten en Menuitem in regel 8; wat hoort deze te doen?
MenuItem bestaat in jouw verhaaltje per definitie uit Menu_1, Menu_2 of Menu_3; maar je definieert niet wat de actie moet zijn die hierop moet volgen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Wat is er mis met regel 6?
Als ik een response.write doe op MenuItem krijg ik keurig Menu_1 te zien.....

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Mij is geleerd dat de syntax:

MenuItem="Menu_" & i

(Met extra " na Menu_) moet zijn, als afsluiting van een string.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 25 augustus 2002 @ 22:01:
Mij is geleerd dat de syntax:

MenuItem="Menu_" & i

(Met extra " na Menu_) moet zijn, als afsluiting van een string.
Aangepast.No luck.

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 25 augustus 2002 @ 21:22:
Heren, volgende probleem:
in de tbl_users zitten de usersopgeslagen, onder meer met of ze een menu uitgeklapt of ingeklapt willen zien (boolean(j/n)-veld).
Die velden zien er als volgt Menu1, Menu2, Menu3 etc

Nu wil ik handig in mijn pagina

1 Menu_1=RSUsers("Menu1")
2 Menu_2=RSUsers("Menu2")
3 Menu_3=RSUsers("Menu3")
4
5 For i=1 to 3
6 MenuItem="Menu_" & i --[gewijzigd naar remarks hier, no luck]--
7
8 if MenuItem then
9 [het mooie menu-uitgeklapt]
10 end if
11
12 Next

Nu geeft ie de foutmelding op regel [hersteld naar]: 8;

Microsoft VBScript runtime error '800a000d'
Type mismatch: '[string: "Menu_1"]'

Nu mijn vrij logische vraag: waarom type mismatch?
Die variabele bestaat toch? En is een Y/N veld.

Thx
code:
1
2
3
4
5
For I = 1 to 3
    if RSUsers("Menu" & I) = true then
        [het mooie menu-uitgeklapt]
    end if
Next

Zoiets, werkt dit niet?

Ben er nu eindelijk achter wat je probleem is.
JE hebt een variabele menu_1 en deze is gevuld.
Vervolgens maak je de variabele menuitem en vult deze met "menu_1"
En "menu_1" (string) is niet gelijk aan menu_1 (variabele naam")
Je kan dit oplossen door alles in een array te stoppen; weet niet of VBScript iets heeft als de eval-functie in Javascript.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Jij wilt een variabele variabele maken, en dat gaat niet. Ofwel, maar in ieder geval niet zo. ;)

Ja ken natuurlijk wel met een array werken, bijv. Of zoals hierboven beschreven.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-08 16:45
MenuItem="Menu_" & i
Tja variabele variabelenamen bestaan niet vbscript, of je moet met eval gaan werken, maar daar wordt het alleen maar ranziger van.

Je kan wel MenuItem = RSUsers( "Menu"&i ) doen.

Verwijderd

Topicstarter
For I = 1 to 3
if RSUsers("Menu" & I) = true then
[het mooie menu-uitgeklapt]
end if
Next

------
dat werkt wel, maar waarom werkt het andere niet? [in ieder geval dank]

  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 25 augustus 2002 @ 22:28:
For I = 1 to 3
if RSUsers("Menu" & I) = true then
[het mooie menu-uitgeklapt]
end if
Next

------
dat werkt wel, maar waarom werkt het andere niet? [in ieder geval dank]
Om de reden die Sjaakie, Gert en ik aangaven.. ;)

Misschien een algemene tip: Als je een variabele variabelenaam nodig hebt, kijk dan eens naar het gebruik van Arrays.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1