Jag loopar ut en lista med en massa produkter från en databas och till varje produkt skrivs också en checkbox ut. Tanken är att man ska kunna välja ett antal produkter vars produkt-ID ska läggas in i en annan tabell i DB:n. Mitt problem är att jag inte riktigt vet hur jag ska samla in informationen om vilka checkboxar som är ikryssade. Som det är nu döper jag checkboxarna efter produktens ID, typ:
sqlOpen = "SELECT * FROM produkt WHERE lager > 1 ORDER BY datum DESC;"
...
while not rs.eof
<input type="checkbox" name="<%= rs("produktID") %>">
...
rs.movenext
wend
Hur ska jag göra för att samla in produkt-ID:t för de som är ikryssade?
Peter SMedlem sedan dec. 20025 483 inlägg Sätt samma namn på checkboxarna, men olika värden:
while not rs.eof
<input type="checkbox" [b]name="c"[/b] value="<%= rs("produktID") %>">
...
rs.movenext
wend
if len(request.form("c")) > 0 then
dim arr
arr = split(request.form("c"), ",")
' ...
end if
DenkanMedlem sedan juni 2002256 inlägg Prova
while not rs.eof
<input type="checkbox" name="product" value="<%= rs("produktID") %>">
...
rs.movenext
wend
Ta sen mot datan genom...:
Dim arrProducts, i
arrProducts = Split(Request.Form("product"),", ")
For Each prodID In arrProducts
' Gör din tilläggning i dbn
' "INSERT INTO annan_tabell (productID) VALUE (" &prodID& ")"
Next
Borde funka, tycker jag...
/ EDIT: Sen som alltid...? ;>
emissionMedlem sedan dec. 19996 721 inlägg Man behöver (bör) inte splitta.
For Each prodID In Request.Form("product")
' Gör din tilläggning i dbn
' "INSERT INTO annan_tabell (productID) VALUE (" &prodID& ")"
Next
Härligt! Det funkar jättebra, tack ska ni ha! :bire
Men apropå att splitta, jag skulle vilja köra samma variabel (request.form("c")) genom en if-sats i en loop, typ så här:
while not rs.eof
if annanvariabel = request.form("c") then
...
wend
Men grejen är att request.form("c"):s värde ser ut så här: "2134,1234,5435,7654". Det är alltså fyrasiffriga värden men hur många det är vet jag inte. Hur kan jag splitta upp request.form("c") så att jag kan testa de fyrasiffriga värdena i min if-sats?
emissionMedlem sedan dec. 19996 721 inlägg Antingen gör du det inne i loopen, eller så kollar du med instr
if instr(", " & request.form("c") & ",",", " & annanvariabel & ",")>0 then
Hähä, försökte klura ut hur jag skulle göra med instr men jag fattade inte :l
Men det är lugnt, gav mig fan på att fixa en liten for-loop med en if-sats i. Funkar finfint! Tack alla för hjälpen! :)
Peter SMedlem sedan dec. 20025 483 inlägg Posta gärna lösningen så att andra kan ta del av den. Använd sedan funktionen "acceptera som slutgiltigt svar" på det inlägget.
Lite rörigt men men:
set rs7 = server.createobject("ADODB.recordset")
sqlOpen7 = "SELECT nyheterid FROM prod_nyhetsbrev;"
rs7.open sqlOpen7, objconn, adlockoptimistic
strCont = rs7("nyheterid")
strCont = split(strCont,",",-1,1)
rs7.close
set rs7 = nothing
<input type="checkbox" name="prod" value="<%= rs("produktID") %>"<%
for each item in strCont
strProd1 = CStr(rs("produktID"))
if strProd1 = item then
response.write " checked"
else
...
end if
next
Poängen är att jag lägger in alla produktid:n från en post i min db i strCont som jag sen splittar. Därefter kör jag en for-loop med en if-sats (som i sin tur ligger i en while-loop som loopar ut produktid:n från db:n) som kollar när produktid:erna stämmer överens och checkar därmed de checkboxar vid de produkter som produktid:n sparats för. Ganska självklara saker egentligen, eller hur? ;)
Sen är det faktiskt så att jag ställde två frågor i denna tråd, den första svarade Peter S m fl på. Men jag accepterar väl mitt eget svar som slutgiltigt svar då. Tack igen hörni! :bire
Är det nån som vill veta min exakta lösning kan ni messa mig.
Peter SMedlem sedan dec. 20025 483 inlägg Meningen med funktionen är att man skall acceptera det inlägg som löste problemet. Om ett inlägg löser halva problemet och ett annat inlägg den andra halvan, då kan man sammanställa de båda lösningarna i ett nytt inlägg och sedan acceptera det som slutgiltigt. Allt för att hjälpa andra att snabbt och smidigt hitta svaren på sina problem. :bire