17. oktober 2002 - 14:08Der er
43 kommentarer og 1 løsning
Rette i egne informationer: checkbox
Jeg har en medlemsside (som her på Eksperten), hvor brugeren kan rette i egne oplysninger, som f.eks. e-mail adresse, hjemmeside etc.
Jeg vil også gerne have, at brugeren kan fravælge at få vist i medlemslisten, hvornår vedkommende sidst har logget ind v.hj.a. en checkbox.
Jeg har manuelt sat et hak i min egen profil (i databasen), og derefter lagt noget kode ind på min "Rediger profil"-side:
<input type="checkbox" value="<%=Server.HTMLEncode(RS("showlastseen"))%>" name="shwlstseen"> Jeg ønsker ikke vist hvornår jeg sidst har logget ind!
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skal jo lige tjekke om din værdi fra DB er valgt eller ikke valgt.
Jeg plejer at gører således:
<input type="checkbox" value="<%=Server.HTMLEncode(RS("showlastseen"))%>" name="shwlstseen"<% if RS("showlastseen") = "sand" then %> checked<% end if %>> Jeg ønsker ikke vist hvornår jeg sidst har logget ind!
Hvis dit felt RS("showlastseen") er lig med "sand" så bliver den afkrydset.
Værdien bliver hentet fint nok ud. Jeg prøvede at logge på en profil, hvor der ikke var hakket af i RS("showlastseen"), og på en anden, hvor der VAR hakket af. Der var hak, hvor der skulle være det, og der var ikke hak, hvor der IKKE skulle være det, så det er jo fint nok. Men denne her "Data type mismatch" .... :o/
Prøv at fjerne value="<%=Server.HTMLEncode(RS("showlastseen"))%>" fra din checkbox. Det gør at når du submitter den form den er i hvis den så er afkrydset så har den værdien "on" - det kan du jo tjekke på og gemme i databasen.
Lige et spm. til: SQLEncode er det en funktion/subrutine du benytter?
Jeg tror det har noget at gører med at du forsøger at gemme noget som tekst med '' i SQL og det kan ikke lade sig gører, tror det er showlastseen='" & Trim(SQLEncode(Request.Form("showlastseen"))) & "' den er gal med.
Okay udskriv din SQL streng gå ind i access og opret en tom forespørgsel og indsæt den SQL du har udskrevet. Kør nu forespørgslen og se hvor den melder fejl.
i edituser.asp set en kommentar tegn ' foran der hvor du sender brugeren tilbage til oversigten - sikekrt vha. en response.redirect - kør siden igen nu burde den udskrive SQL strengen
Ok, jeg skjuler lige et par ting, men ellers ser den sådan her ud:
UPDATE profiles SET email='MinEmail@adresse.dk', homepage='www.MinHjemmeside.dk/', showlastseen='', description='Dette er en beskrivelse, som brugeren kan sætte på sin profil.', lastseen='10/17/2002 15:29:40', lastIP='xxx.xxx.xxx.xxx' WHERE username='MitProfilNavn'
okay så ligger fejlen i af feltet showlastseen forventer en værdi "Falsk" eller "Sand" - du forsøger bare at gemme '' det går ikke.
Prøv dette her: Input feltet : <input type="checkbox" name="shwlstseen"<% if RS("showlastseen") = "sand" then %> checked<% end if %>> Jeg ønsker ikke vist hvornår jeg sidst har logget ind
SQL : <% if Request.Form("showlastseen") = "on" then lastseen = true else lastseen = false end if mySQLstr = "UPDATE profiles SET email='" & Trim(SQLEncode(Request.Form("email"))) & "', homepage='" & Trim(SQLEncode(Request.Form("homepage"))) & "', showlastseen=" & lastseen &", description='" & Trim(SQLEncode(Request.Form("description"))) & "', lastseen='" & Now() & "', lastIP='" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "' WHERE username='" & SQLEncode(Session("username")) & "'" Conn.Execute %>
okay jeg bliver nødt til at gå nu - men den er gal med dit SQL kald - prøv at udskrive det på siden igen og kopiere det ind i Access og kør det som en forespørgsel...
Håber du finder ud af det - ellers kigger jeg senere
Jeg har fundet ud af det, jeg poster svaret i morgen. Er det ok?
1000 tak for hjælpen, Rasmus :o)
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.