webForumDet fria alternativet

Checkbox

21 svar · 416 visningar · startad av dahlgren

dahlgrenMedlem sedan aug. 20011 946 inlägg
#1

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?

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Nej de behöver väl inte ha samma namn. Du får ett kommaseparerat relsultat på "mottagarsidan".

ja,,nej,ja,nej,,,ja,nej

PalleMedlem sedan apr. 20003 174 inlägg
#3

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.

dahlgrenMedlem sedan aug. 20011 946 inlägg
#4

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?

PalleMedlem sedan apr. 20003 174 inlägg
#5

onclick, onchange mm. mm.

Sorry, var kanske lite otydlig innan..

 

Jesper TMedlem sedan nov. 20017 144 inlägg
#6

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.

dahlgrenMedlem sedan aug. 20011 946 inlägg
#7

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?

dahlgrenMedlem sedan aug. 20011 946 inlägg
#8

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.

PalleMedlem sedan apr. 20003 174 inlägg
#9

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?

Jesper TMedlem sedan nov. 20017 144 inlägg
#10

Det kanske är smart att döpa checkboxen med ett id då?

dahlgrenMedlem sedan aug. 20011 946 inlägg
#11

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.

PalleMedlem sedan apr. 20003 174 inlägg
#12

Jesper T skrev:

Det kanske är smart att döpa checkboxen med ett id då?

Du tog orden ur munnen på mig.. *lol* :)

dahlgrenMedlem sedan aug. 20011 946 inlägg
#13

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?

PalleMedlem sedan apr. 20003 174 inlägg
#14

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.

dahlgrenMedlem sedan aug. 20011 946 inlägg
#15

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.

PalleMedlem sedan apr. 20003 174 inlägg
#16

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? :)

 

Jesper TMedlem sedan nov. 20017 144 inlägg
#17

Du behöver nog varken splitta eller loopa:

MedID=reQuest("MedID")
sql = "UPDATE tblTable SET fldField where MedID in(" & MedID  & ")"
con.Execute sql,,128
dahlgrenMedlem sedan aug. 20011 946 inlägg
#18

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?

@ndersMedlem sedan juni 200032 969 inlägg
#19

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  & ")"
dahlgrenMedlem sedan aug. 20011 946 inlägg
#20

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

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)