webForumDet fria alternativet

checka i en "utlopad" checkbox

ASP

9 svar · 273 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Hej alla glada forumanvändare!

Jag lopar ut ett antal checkboxar enligt följande:

<% 'Hämtar alla grupper från databasen
sql_group = "SELECT * FROM T_group"
set rsGroup = connect.execute(sql_group) 
while not rsGroup.eof %>
	<input type="checkbox" value="<%=rsGroup("id")%>"  name="req_group_string" <% if inStr(sGroupString, rsGroup("id")) then %> checked <% end if %>> <%=rsGroup("group_name")%> <br>
<% rsGroup.movenext
wend %>

För att kontrollera vilka checkboxar som var valda innan sidan laddades om så körde jag <% if inStr(sGroupString, rsGroup("id")) then %> checked <% end if %>. Det fungerade bra ända till jag kom så långt så att det finns fler än 10 grupper.

Jag kan inte komma på något smidigt sätt att fylla i dessa checkboxar. Please hilfe !

sGroupString = "1, 2, 4, 12, 3"
rsGroup("id") = 12

När checkbox 12 är vald så blir 1 + 2 + 12 ikryssade. Vilket är helt logiskt men så vill jag inte ha det :OO

Medlem sedan nov. 20017 144 inlägg
#2

Var får du sGroupString ifrån?

Medlem sedan juni 200032 967 inlägg
#3

Lägg till ett mellanslag först i sGroupString, och ett kommatecken sist, så den ser ut så här:

sGroupString = " 1, 2, 4, 12, 3,"

Sedan kollar du bara om mellanslag + id:t + komma finns i den strängen. Är det så, markera checkboxen.

Medlem sedan maj 20012 080 inlägg
#4
<input type="checkbox" value="<%=rsGroup("id")%>"  name="req_group_string" <% if inStr(sGroupString, rsGroup("id")) then %> checked <% end if %>> <%=rsGroup("group_name")%> <br>

Är en del av ett formulär som postar resultatet till samma sida. Läser sedan formuläret med nedan:

sGroupString = request.form("req_group_string")

Det passar mig riktigt bra att ha resultatet kommaseparerat då det blev mycket enklare att skriva en lite mer dynamisk sql fråga baserat på resultatet. Tack sql guden Lars ännu en gång. Mitt liv blev så mycket enklare pga detta :) :)

Medlem sedan maj 20012 080 inlägg
#5

@nders. Förstår! Låter jättesmart.

Labbar lite med:

	<% varMatchThis = " " &rsStat("id") &"," %>
	<input type="checkbox" value=" <%=rsStat("id")%>" name="req_status_string" <% if inStr(sStatusString, varMatchThis) then %> checked <% end if %>> <%= rsStat("status_text") %> <br>

Men när man bara väljer en checkbox så har jag ju inte något kommatecken... hmmm...

Medlem sedan nov. 20017 144 inlägg
#6

Men när man bara väljer en checkbox så har jag ju inte något kommatecken... hmmm...

Det behöver du väl inte ha heller

Medlem sedan juni 200032 967 inlägg
#7

sGroupstring kan ju se ut lite hur som helst. Men om du lägger till mellanslaget före och kommatecknet efter så kommer det ju fungera oberoende av om du har en eller 49 prylar i strängen.

Medlem sedan nov. 20017 144 inlägg
#8

Ta bort det här
<% varMatchThis = " " &rsStat("id")%>

Medlem sedan maj 20012 080 inlägg
#9

Bra. Du fick in mig på rätt spår @nders. Superbra.

Så här löste jag det:

	<% varMatchThis = " " &rsStat("id") &" " %>
	<input type="checkbox" value=" <%=rsStat("id")%> " name="req_status_string" <% if inStr(sStatusString, varMatchThis) then %> checked <% end if %>> <%= rsStat("status_text") %> <br>

Det jag gjorde var att lägga till ett mellanslag både innan och efter siffrorna.

Medlem sedan maj 20012 080 inlägg
#10

3 svar inom samma minut. Inte illa.

HEJJA WEBFORUM.NU :)

249 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)