Toon posts:

[ASP] 'if then else' vanuit een kolomwaard binnen een query?

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
            SQL = "SELECT voornaam, voorvoegsel, username, admin 
FROM tbl_klanten WHERE naam = '" & Request.Form("edtcontactpersoon") & "' "
        Call Recordset.Open(SQL, Connection)
       
 If ("admin") = "True" Then 
admincheck = "checked"
Else 
admincheck = ""
end if


Wat ik wil doen is een waarde toekennen aan een bepaalde variabele (dim admincheck)
Die waarde moet gehaald worden vanuit een kolom (admin) die uit de query wordt gehaald, en vervolgens moet de variabele checked of geen waarde krijgen.

Als je de code bekijkt begrijp je wel wat ik wil doen, maar of dit op deze manier mogelijk is weet ik dus niet.

If ("admin") ... Klopt dus niet helemaal? (dit moet de kolom naam zijn die geselecteerd wordt vanuit de query)

Tis mischien een beginnersvraag, maar ik kom er niet uit en heb het niet kunnen terugvinden in de faq of elders op internet. ;(

  • foske
  • Registratie: Juli 2001
  • Laatst online: 18-05 22:42
Wat jij nu doet, is eigenlijk de string "admin" vergelijken met de de string "true". ASP weet dus niet dat je de kollom "admin" wil hebben, want dat geef je nergens aan.

even uit mijn hoofd (hoop dat het werkt, lang geleden dat ik dit heb gedaan):
code:
1
2
if Recordset("admin") = true then
....


daarnaast heeft http://www.aspfaqs.com/ mij heel erg geholpen bij het leren van asp. Kijk daar maar eens onder databases

[ Voor 14% gewijzigd door foske op 28-12-2004 11:13 ]


Verwijderd

Topicstarter
Fossie schreef op dinsdag 28 december 2004 @ 11:12:
Wat jij nu doet, is eigenlijk de string "admin" vergelijken met de de string "true". ASP weet dus niet dat je de kollom "admin" wil hebben, want dat geef je nergens aan.

even uit mijn hoofd (hoop dat het werkt, lang geleden dat ik dit heb gedaan):
code:
1
2
if Recordset("admin") = true then
....


daarnaast heeft http://www.aspfaqs.com/ mij heel erg geholpen bij het leren van asp. Kijk daar maar eens onder databases
dat had ik inderdaad geprobeerd, alleen toen kreeg ik de fout;

Runtimefout Microsoft VBScript (0x800A000D)
Typen komen niet met elkaar overeen


mijn code is nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%  
    Dim Connection
    Dim Recordset
    Dim SQL
    Dim admincheck

    Set Recordset = Server.CreateObject("ADODB.Recordset")
    Set Connection = Server.CreateObject("ADODB.Connection")    
        
        Call Connection.Open("DRIVER={Microsoft Access Driver (*.mdb)};" & _
            "DBQ=" & Server.MapPath("HelpdeskI&A.mdb"))
        
            SQL = "SELECT * FROM tbl_klanten WHERE naam = '" & Request.Form("edtcontactpersoon") & "' "
        Call Recordset.Open(SQL, Connection)
       
 If Recordset("admin") = True Then 
admincheck = checked
Else 
admincheck = ""
end if 
    
%>


(haakjes of geen haakjes bij True, of checked, maakt niet uit, krijg zelfde fout)
daarnaast heb ik een checkbox die vervolgens de waarde van de variabele aan moet nemen:

<input type="checkbox" name="edtadmin" value="<%admincheck%>"

[ Voor 12% gewijzigd door Verwijderd op 28-12-2004 11:19 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Wat voor veldtype is "admin" in de database?

Je moet trouwens ook even iets gaan lezen over SQL Injection.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
ASP:
1
2
3
If CBool(Recordset("admin")) = true Then

End If

En voor de rest wil ik je aanraden om de diverse SDKs die voor asp en ado beschikbaar zijn te downloaden...

microsoft data services SDK
windows scripting sdk

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 18-05 16:28
Kun je niet eerst ff checken of Recordset("admin") wel iets heeft door bijvoorbeeld strTest = Recordset ( "admin" ) te doen?

stp - PSN ID: stp_4


Verwijderd

Topicstarter
het admin veld is een ja/nee veld dus de waarde die komt is True of False.
ik ga eens wat proberen brb ;p

Verwijderd

Topicstarter
faabman schreef op dinsdag 28 december 2004 @ 11:20:
ASP:
1
2
3
If CBool(Recordset("admin")) = true Then

End If

En voor de rest wil ik je aanraden om de diverse SDKs die voor asp en ado beschikbaar zijn te downloaden...

microsoft data services SDK
windows scripting sdk
hij geeft ook hier aan dat de gegevens typen niet overeen komen.
Ik weet zeker dat hij een True, of False uit de database haalt want dit had ik al getest met een textveld dat <%=Recordset("admin")%> bevat. Nu is alleen het probleem dat de waarde moet worden geplaatst in een checkbox en dit wou ik dus oplossen met de variabele admincheck.
wat gaat er fout toch fout ;(

Verwijderd

Topicstarter
ik weet nu waar het fout gaat, de checkbox kan de waarde "checked" van een variabele niet overnemen. Dan komen de gegevenstypen niet overeen, hoe kan dit?
als ik van die checkbox een text veld maakt krijg ik dezelfde fout. De code van het de checkbox is:
<input type="checkbox" name="edtuitgebreid" value="<%admincheck%>">


edit:
Tis gelukt!

voor de mensen die het willen weten:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<%  
    Dim Connection
    Dim Recordset
    Dim SQL
    Dim admincheck
    Dim admincheck2

    Set Recordset = Server.CreateObject("ADODB.Recordset")
    Set Connection = Server.CreateObject("ADODB.Connection")    
    
            Call Connection.Open("DRIVER={Microsoft Access Driver (*.mdb)};" & _
            "DBQ=" & Server.MapPath("HelpdeskI&A.mdb"))
        
            SQL = "SELECT * FROM tbl_klanten WHERE naam = '" & Request.Form("edtcontactpersoon") & "' "
        Call Recordset.Open(SQL, Connection)
       
       admincheck  = CBool(Recordset("admin"))
       
       
    If admincheck = True Then 
admincheck2 = 1
Else 
admincheck2 = 0
end if 

            
%>


EN:

<input type="checkbox" name="edtadmin" value="<%=CBool(admincheck2)%>"<%if CBool(admincheck2) Then Response.Write "checked" Else Response.Write "unchecked"%>></td>

[ Voor 61% gewijzigd door Verwijderd op 28-12-2004 12:18 ]


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Verwijderd schreef op dinsdag 28 december 2004 @ 12:00:
ik weet nu waar het fout gaat, de checkbox kan de waarde "checked" van een variabele niet overnemen. Dan komen de gegevenstypen niet overeen, hoe kan dit?
als ik van die checkbox een text veld maakt krijg ik dezelfde fout. De code van het de checkbox is:
<input type="checkbox" name="edtuitgebreid" value="<%admincheck%>">
doe nu eens <%=admincheck%>

En geen vragen meer stellen totdat je de volledige tutorials van http://w3schools.com/asp hebt doorgenomen (de de SDKs hebt gedownload) want alles wat je tot nu toe hebt gevraagd is gewoon BASIC

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 09:13
je zou nu ook dit kunnen doen:
code:
1
2
admincheck2 = 0
If admincheck Then admincheck2 = 1


Dus zonder de "= True" en sowieso wat korter geschreven. Voor de rest, zie faabman... :)

Everyday's an endless stream, of cigarettes and magazines...

Pagina: 1