Jag har en lista med användare som jag skriver ut på en sida. I samma tabell som användarna finns det även ett fält som heter Godkand i det lagrar jag en sträng som är Ja eller Nej. Att sen få en checkbox som är i kryssad där godkänd är ja och inte när godkand är nej borde inte var några problem. Hur ska jag göra så att man kan kryssa i det tomma rutorna och trycka på upp datera. allt borde ju hamna i samma <form> men måste inte checkboxarna ha olika namn? Hur ska jag lösa det?
Checkbox
21 svar · 416 visningar · startad av dahlgren
Nej de behöver väl inte ha samma namn. Du får ett kommaseparerat relsultat på "mottagarsidan".
ja,,nej,ja,nej,,,ja,nej
Jag brukar lösa det så här:
Koppla ett event till checkboxen som vid onclick skickar dig till en sida som uppdaterar kolumnen i fråga med värdet.
Är den markerad uppdateras kolumnen med Ja och är den det inte med Nej.
Palle skrev:
Jag brukar lösa det så här:
Koppla ett event till checkboxen som vid onclick skickar dig till en sida som uppdaterar kolumnen i fråga med värdet.
Är den markerad uppdateras kolumnen med Ja och är den det inte med Nej.
Vad menar du med event?
Man kan ju även göra uppdateringen på en "felsida", då kommer du slippa ladda om sidan vid varje uppdatering. Men det beror ju lite på vad du skall använda det hela till.
Ok, nu har jag kommit så här långt (kort)
if RS("godkand") ="Ja" then
response.write "<input type=""checkbox"" name=""checkbox"" value=""checkbox"" checked>"
else
response.write "<input type=""checkbox"" name=""checkbox"" value=""checkbox"">"
end if
checkboxen kommer att få samma namn hela tiden. koden ovan ligger i en loop. När jag går till sidan som uppdaterar så borde det väl bli knas då den inte vet var det ska uppdateras. Eller?
Jesper T skrev:
Man kan ju även göra uppdateringen på en "felsida", då kommer du slippa ladda om sidan vid varje uppdatering. Men det beror ju lite på vad du skall använda det hela till.
Det ska användas av en administratör som ska godkänna medlemmar. Så det kan röra sig om många som ska godkännas på en gång.
dahlgren skrev:
Det ska användas av en administratör som ska godkänna medlemmar.
Är det det enda som kommer hända på denna sida?
Det kanske är smart att döpa checkboxen med ett id då?
Nej men det är den viktigast funktionen, i övrigt ska användarna listas och sen så ska det länkas till en redigeringssida där man kan redigera den enskilde användarens samtliga uppgifter.
Jesper T skrev:
Det kanske är smart att döpa checkboxen med ett id då?
Du tog orden ur munnen på mig.. *lol* :)
Jesper T skrev:
Det kanske är smart att döpa checkboxen med ett id då?
Smart. Nu döps den efter MedID. Hur ska man loopa igenom allt på motagningssidan så att man får med alla ändringar? Är det bättre att lagra Godkand i databasen som ett Ja/Nej fält i stället för en sträng?
Vid närmare eftertanke.. låt alla checkboxar ha samma namn.
Spara MedID som value istället.
När du sedan submittar formuläret får du ut alla markerade checkboxar i en komma-separerad sträng med Request.Form("checkbox").
Splitta denna och loopa igenom den för att uppdatera värdet i databasen med ex. då Ja.
Nu blev det nog lite överkurs för min del när vi kommer till att splitta strängar. Du får gärna förklar om du har tid.
hehe, ok. Här kommer ett litet exempel:
[red]'// Ta emot värdet
strFormValue = trim(Request.Form("checkbox"))
'// Splitta värdena och skapa en array
arrFormValue = Split(strFormValue, ",")
'// Använd värdet (det unika id´t) och uppdatera kolumnen
For i = 0 To UBound(arrFormValue)
Connect.Execute("UPDATE tblTable SET fldField = 'value' WHERE ID = "& arrFormValue(i)),,128
Next[/red]
Hänger du med? :)
Du behöver nog varken splitta eller loopa:
MedID=reQuest("MedID")
sql = "UPDATE tblTable SET fldField where MedID in(" & MedID & ")"
con.Execute sql,,128
Nu har jag sovit på saken och är berädd att ta nya tag. Har börjat labba med Jesper T:s kod
<%
MedID=request.form("checkbox")
sql = "UPDATE medlemmar SET godkand where chekbox in(" & MedID & ")"
conn.Execute sql,,128
%>
Fast jag får syntax-fel när jag kör den. Hur ändrar denna sql-fråga egentligen min sträng i fältet godkand?
Man ska alltid skriva ut färdiga SQL-frågor om det är strul. Borde du dock inte ange ett fältvärde?
sql = "UPDATE medlemmar SET godkand [b]= true[/b] where chekbox in(" & MedID & ")"
Känns som om det börjar närma sig fungerande nu. Sql frågan ser fin ut när den skrivs ut men detta uppstår när jag kör den.
UPDATE medlemmar SET godkand = True where chekbox in(10, 13)
Microsoft JET Database Engine (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
/hem/administrera/andra.asp, line 6