webForumDet fria alternativet

Checkbox

11 svar · 316 visningar · startad av Asa

AsaMedlem sedan dec. 20011 860 inlägg
#1

Hur ska jag göra för att få denna kod att funka? Man ska kunna ändra flera poster på en gång! Bara om den skallvara true eller false.
Vill inte ha med radio utan som jag visar här med checkbox. Går det? Anna checkboxar loopar jag från databasen!

<form name="add" method="post" action="admin.asp?do=inne&action=show">
<input type="checkbox" name="<%=RecSet("id")%>" value="<%=RecSet("visa")%>" <%If RecSet("visa") = True Then Response.Write "checked"%> class="td">
<br><input type="submit" value="Utför ändring">
</form>

<%If Request.QueryString("action") = "show" Then
   For Each id In Request.Form
       If [B]DEN ÄR NÅ ANNAT ÄN TOM[/B]  Then
          Conn.Execute("Update banner Set visa=True Where id=" & id)
       Else
          Conn.Execute("Update banner Set visa=False Where id=" & id)
       End If
   Next
   Response.Redirect "admin.asp?do=inne"
End If%>
OveRRidEMedlem sedan feb. 200112 078 inlägg
#2
If request.form(id) <> "" Then

Jag är inte helt säker, men testa.

AsaMedlem sedan dec. 20011 860 inlägg
#3

Går ej att bocka av dem!

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

Jag kommer inte ihåg vad en checkbox har för värde när den är ifylld, men jag tror det är "on".

Testa att skriva ut din checkbox i debug-syfte (när den är ikryssad):

response.write request.form("DinCheckBox")

Då ser du vad den har för värde och kan lätt skriva ihop din if-sats.

PallemanMedlem sedan dec. 2000557 inlägg
#5
<%
   
If Request.QueryString("action") = "show" Then
   For Each id In Request.Form
       If Len(trim(Request.Form(id))) > 0  Then
          '--## id har ett värde
          Conn.Execute("Update banner Set visa=True Where id="& id)
       Else
          '--## id har inget värde
          Conn.Execute("Update banner Set visa=False Where id="& id)
       End If
   Next
   Response.Redirect "admin.asp?do=inne"
End If
   
%>

En sak om din kod.. Om id är tomt kan du inte uppdatera till False eftersom den inte har ett id att gå efter.

AsaMedlem sedan dec. 20011 860 inlägg
#6

Datatypen för Visa är Ja/Nej. Id kan inte vara tomt för det är räknare i databasen! Eller hur mena du?

Erik JuhlinMedlem sedan maj 200010 687 inlägg
#7

Börja med att sätta alla till False och sätt sen de ikryssade till True. De som inte är ikryssade skickas inte med i postningen. :)

OveRRidEMedlem sedan feb. 200112 078 inlägg
#8

Id kan inte vara tomt för det är räknare i databasen!

Det han menar är att ifall id (request.form) inte har något värde, blir det lite svårt att köra den raden, eftersom id inte har något id, men ändå är med i SQL-satsen. ;)

AsaMedlem sedan dec. 20011 860 inlägg
#9

Det står antingen True eller False där jag skriver ut det som value.

Det funkar å bocka i dom men inte avbocka! Hur fixar jag det då :/

PallemanMedlem sedan dec. 2000557 inlägg
#10

Hmm.. jag har tänkt om. :r
Hade för lite kaffe i kroppen.. ;)

Variabeln id som du har att uppdatera efter i sql-satsen är ju namnet på formuläret i denna loop.. så glöm min tidigare kommentar. :)

*tar en stor slurk kaffe*

Fungerade det med Len()?

AsaMedlem sedan dec. 20011 860 inlägg
#11

Funkade på samma sätt som

If request.form(id) <> "" Then

Men det går fortfarande ej å avbocka.

AsaMedlem sedan dec. 20011 860 inlägg
#12

Ähh - jag körde med radioknappar iallafall! Smidigast så!

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