1. Din if-sats
<%if blnShow then Response.Write "checked" end if%>>
innehåller inget villkor. Du måste lägga till exempelvis Len(blnshow)>0 eller dylikt.
2. Lagra 1:or och 0:or i stället för Yes och No om du vill skilja på poster. :)
15 svar · 332 visningar · startad av Mannen
Tjenare
Har ett litet problem, jag har en sida där jag kör. (har tagit bort en del kod)
<%for i=0 to Ubound(adVektor,2)%>
Show: <input type="checkbox" name="chbShow" value="<%=intID%>" <%if blnShow then Response.Write "checked" end if%>>
<%next%>
Sedan när man skickar iväg formuläret kommer man till en annan sida som kollar vilka poster som ska uppdateras i databasen.
Det är här det blir problem, jag vet inte hur jag ska kolla vilka som ska sättas till true respektive false. (Kolummen i databsen är en Yes/No
Om checkboxen är markerad ska kolummen bli true annars om den är avmarkerad ska den bli false, hur ska jag göra om koden nedan så det blir rätt? :l
For I = 1 To Request.Form("chbShow").Count
intID=Request.Form("chbShow")(I)
SQL="UPDATE tblTxtAdInvoice Set invAdShow=true WHERE invID="& intID
Set RecSet = Conn.Execute(SQL)
Next
Tack på förhand :)
1. Din if-sats
<%if blnShow then Response.Write "checked" end if%>>
innehåller inget villkor. Du måste lägga till exempelvis Len(blnshow)>0 eller dylikt.
2. Lagra 1:or och 0:or i stället för Yes och No om du vill skilja på poster. :)
<%if blnShow then Response.Write "checked" end if%>>
Jo det gör den visst, om blnShow (dvs om posten invAdShow=true) så blir blnShow=true, dvs samma som blnShow)
Så om blnShow=true så kommer checkboxen vara markerad.
Problemet ligger inte där, det är på den sidan som jag vill uppdatera databsen det svåra är. Man måste väll kunna ta reda på om checkboxen är markerad eller ej?
Visas alla Invoicar på sidan eller är det bara en delmängd?
conn.execute "update tblTxtAdInvoice Set invAdShow=true WHERE invID in (" & Request.Form("chbShow") & ")",,128
conn.execute "update tblTxtAdInvoice Set invAdShow=false WHERE invID not in (" & Request.Form("chbShow") & ")",,128
borde vara ok om du visar alla och det inte är allt för många poster.
Tackar, vart har du lärt dig alla SQL frågor? Har du läst alla böcker som finns eller är du bara en naturbegåvning?
Vad skulle man göra utan wf, tackar... Skriver ut min kod om någon skulle behöva hjälp senare.
objConn.Execute "UPDATE tblTxtAdInvoice Set invAdShow=true WHERE invID in (" & Request.Form("chbShow") & ")",,128
objConn.Execute "UPDATE tblTxtAdInvoice Set invAdShow=false WHERE invID not in (" & Request.Form("chbShow") & ")",,128
Det behövs ingen for-loop, nu utför du samma update flera gånger..
hopp, där missade jag något, tack igen
Nu har jag dykt på problem med detta. Om jag kör Paging (med getrows) så har jag ju bara vissa poster som skickas till sidan där det ska sättas till true or false.
Hur gör jag då så inte alla de övriga posterna sätts till false?
Ingen som vill eller ser tråden bara för gammal ut? :l
Lagra största och minsta id iför varje sida i två hidden-fält och lägg till villkoret
and id between " & requst.form("lowid") & " and " & request.form("highid")
Tack för svaret :)
Nu är det så att jag har en sökfunktion på alla poster (Var inte samma poster som första frågan). Därför är det ju olika ID´s, det finns inget annat sätt att lösa det på? Vore jättebra.
Med id menar jag den kolumn som du har paging enligt.
Men eftersom det söks bland dem visas tex:
ID 1
ID 2
ID 5
ID 73
ID 89
Gör inte de luckorna att det inte fungerar? Tex ID 4 kommer bli false vid uppdatering.
Jag förstår problemet. Då kan du väl inkludera det ursprungliga sökvillkoret i dina update-satser.
Det har du väldigt rätt i. :) Får titta på det imorgon, känner att jag måste lägga mig tidigt idag. Tack igen :)
Allt är nu fixat, tack så hemskt mycket.