Avatar billede simsen Mester
28. juli 2004 - 22:17 Der er 1 kommentar og
1 løsning

gemme og vælge udfra bruger hvilken sub der skal vises

Jeg har en side (som ikke ligger på nettet), hvor jeg kan logge på som elev, hvor jeg skal have mulighed for at rette mine egne data, men ikke andre elevers.

Jeg vælger nu mig selv på listen (som jeg ikke lige har medtaget) og kommer frem til næste side. Dette virker perfekt, jeg får nu vist mine data i tekstbokse, hvor jeg så vil rette til. Jeg retter og trykker på ok - den skriver at den er gemt. Men kigger jeg i databasen, så er rettelserne ikke gemt - kan I se i koden, hvor det går galt henne?

Jeg ville så på samme side, føre kontrol med at hentede jeg nu eleven Jesper istedet for - skulle den ikke loade tekstbokse, men kun vise data. Det prøvede jeg ved at ændre i følgende:


if lcase(sPageAction) = "" and lcase(sElevnr) = Session("ID") then
    LoadVars
    ShowEditor
else
    LoadVars
    ShowElev
end if

Det nægtede den total - jeg fik en tom side - uanset hvordan og hvorledes - hvordan griber jeg dette an istedet?


Min db tabel kaldet Brugere:
ID=Autonummerisk felt
Elevnr=Tal
(Disse to vil altid være identiske)
Navn= Tekst
Efternavn=Tekst
BrugerType=Tal
Brugernavn=Tekst
Adgangskode=Tekst
Adresse=Tekst
Postnr=Tal
By=Tekst
Tlf=Tekst
Bdag=Dato og klokkeslet
Pic=Tekst
Notat=Notat
Mobil=Tekst
ICQ=Tekst
MSN=Tekst
Klasse=Tekst
Email=Tekst

Min kode:

<body>
<%
sWhat = trim(Request("ID"))
sPageAction = trim(Request("Action"))
sElevnr = trim(Request("Elevnr"))
sNavn = Trim(Request.Form("Navn"))
sEfternavn = Trim(Request.Form("Efternavn"))
sKlasse = Trim(Request.Form("Klasse"))
sAdresse = Trim(Request.Form("Adresse"))
sPostnr = Trim(Request.Form("postnr"))
sBy = Trim(Request.Form("By"))
sTlf = Trim(Request.Form("Tlf"))
sMobil = Trim(Request.Form("Mobil"))
sBdag = Trim(Request.Form("Bdag"))
sEmail = Trim(Request.Form("Email"))
sICQ = Trim(Request.Form("ICQ"))
sMSN = Trim(Request.Form("MSN"))
sNotat = Trim(Request.Form("Notat"))
sPic = Trim(Request.Form("Pic"))




if lcase(sPageAction) = "" then
    LoadVars
    ShowEditor

end if
if lcase(sPageAction) = "save" then
    SaveVars
    ShowOk
end if


Sub ShowEditor
%>
<FORM METHOD="POST" ACTION="Profil.asp?action=save&ID=<% Response.Write(sElevnr) %>">
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
<TR>
<TD width=10%>Hej</TD>
<TD><INPUT TYPE="text" NAME="Navn" SIZE="30" VALUE="<% Response.WRite(sNavn) %>"></TD>
<TD><INPUT TYPE="text" NAME="Efternavn" SIZE="30" VALUE="<% Response.WRite(sEfternavn) %>"></TD>
<td width="54%" rowspan="10" valign="top" align="center">
<%
Response.Write (sWhat)
Response.Write (sNavn)
Response.Write "<img src="
  Response.Write (sPic)
  Response.Write " width=150 height=200 border=0>"
  Response.Write "</a></td>"
%>

</TR>
<TR>
<TD width=15%>Du bor:</TD>
<TD><INPUT TYPE="text" NAME="Adresse" SIZE="30" VALUE="<% Response.WRite(sAdresse) %>"></TD>
</TR>
<TR>
<TD width=15%>Du bor:</TD>
<TD><INPUT TYPE="text" NAME="Postnr" SIZE="15" VALUE="<% Response.WRite(sPostnr) %>"></TD>
<TD><INPUT TYPE="text" NAME="By" SIZE="30" VALUE="<% Response.WRite(sBy) %>"></TD>
</TR>
<TR>
<TD width=15%>Din telefon ringer hvis jeg trykker:</TD>
<TD><INPUT TYPE="text" NAME="Tlf" SIZE="30" VALUE="<% Response.WRite(sTlf) %>"></TD>
</TR>
<TR>
<TD width=15%>Mobil:</TD>
<TD><INPUT TYPE="text" NAME="Mobil" SIZE="30" VALUE="<% Response.WRite(sMobil) %>"></TD>
</TR>
<TR>
<TD width=15%>ICQ:</TD>
<TD><INPUT TYPE="text" NAME="ICQ" SIZE="30" VALUE="<% Response.WRite(sICQ) %>"></TD>
</TR>
<TR>
<TD width=15%>MSN:</TD>
<TD><INPUT TYPE="text" NAME="MSN" SIZE="30" VALUE="<% Response.WRite(sMSN) %>"></TD>
</TR>
<TR>
<TD width=15%>Notat:</TD>
<TD colspan="2"><INPUT TYPE="text" NAME="Notat" SIZE="62" VALUE="<% Response.WRite(sNotat) %>"></TD>
</TR>

</TABLE>
<BR><BR>
<INPUT TYPE="submit" VALUE="Gem"> <INPUT TYPE="reset" Value="Fortryd"><BR>
</FORM>
<%
End Sub

Sub LoadVars
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\CCOS\nss03.mdb"
Conn.Open DSN

SQL = "Select * FROM Brugere"
Set rs = Conn.Execute(SQL)
if rs.bof = true and rs.eof = true then
    Response.Write("Eleven findes ikke!")
else
    do until rs.eof = true
        if lcase(cstr(rs.fields("Elevnr").value)) = lcase(cstr(sElevnr)) then
sElevnr = Rs.Fields("Elevnr").value
sNavn = Rs.Fields("Navn").value
sEfternavn = Rs.Fields("Efternavn").value
sKlasse = Rs.Fields("Klasse").value
sAdresse = Rs.Fields("Adresse").value
sPostnr = Rs.Fields("postnr").value
sBy = Rs.Fields("By").value
sTlf = Rs.Fields("Tlf").value
sMobil = Rs.Fields("Mobil").value
sBdag = Rs.Fields("Bdag").value
sEmail = Rs.Fields("Email").value
sICQ = Rs.Fields("ICQ").value
sMSN = Rs.Fields("MSN").value
sNotat = Rs.Fields("Notat").value
sPic = Rs.Fields("Pic").value


            exit do
        end if
    rs.movenext
    Loop
end if
rs.Close
set rs = Nothing
set conn = Nothing
End Sub

Sub SaveVars
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\CCOS\nss03.mdb"
Conn.Open DSN

SQL = "Select * FROM Brugere"
Set rs = Conn.Execute(SQL)
if rs.bof = true and rs.eof = true then
    Response.Write("Eleven findes ikke!")
else
    do until rs.eof = true
        if lcase(cstr(rs.fields("Elevnr").value)) = lcase(cstr(sElevnr)) then
Rs.Fields("Navn").value = sNavn
Rs.Fields("Efternavn").value = sEfternavn
Rs.Fields("Klasse").value = sKlasse
Rs.Fields("Adresse").value = sAdresse
Rs.Fields("postnr").value = sPostnr
Rs.Fields("By").value = sBy
Rs.Fields("Tlf").value = sTlf
Rs.Fields("Mobil").value = sMobil
Rs.Fields("Bdag").value = sBdag
Rs.Fields("Email").value = sEmail
Rs.Fields("ICQ").value = sICQ
Rs.Fields("MSN").value = sMSN
Rs.Fields("Notat").value = sNotat

            rs.UpdateBatch adAffectAll
            exit do
        end if
    rs.movenext
    Loop
end if
rs.Close
set rs = Nothing
set conn = Nothing
End Sub

Sub ShowOK
%>
<B>Ændringerne er gemt</B><p>
<A HREF="Addresseoversigt.asp">Retur til Adresselisten</A>
<%
end Sub
%>
</body>
</html>
Avatar billede tobocom Nybegynder
29. juli 2004 - 01:36 #1
Er du sikker på at dette giver et sandt udtryk:

if lcase(cstr(rs.fields("Elevnr").value)) = lcase(cstr(sElevnr)) then

Prøv efter then at skriv:
Response.write("test")
Response.flush

og se om du får noget på skærmen. Hvis du gør har jeg været ude for det samme, hvor det var fordi jeg ikke havde erklæret mine variabler. Hvis ikke skal du lige se på din if-sætning igen.
Avatar billede simsen Mester
30. juli 2004 - 18:15 #2
Jeg lukker denne streng, det gav et sandt udtryk. Jeg har valgt gøre det på en anden måde
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