webForumDet fria alternativet
Logga in / Bli medlem

checkbox

ASP

7 svar · 199 visningar · startad av soffan76

Medlem sedan maj 2001684 inlägg
Trådstart#1

Hejsan!

Vem vet hur jag ska göra i följande fall? Jag har 10 checkboxar vilkas värden hämtas upp från en databas med hjälp av en loop. När man gjort sina val och således kryssat i checkbokarna ska dessa värden hamna i en tabell i databasen som alltså kopplar ihop användare med rätt val. En ny post ska skapas för varje checkbox-val. T.ex. användare 10 gjorde val 5,4 och 6 och användare 12 gjorde val 9 och 10. Fem nya poster ska detta bli.
Var det någon som hängde med? Hoppas det..jag har kört fast...igen...Tacksam för hjälp.

Medlem sedan dec. 19998 577 inlägg
#2

Har checkboxarna samma namn så kommer dom i en kommaseparerad lista som du lätt kan skapa en array utav, sedan kan du lätt loopa igenom hela harangen...

För att koppla den till användaren så lägger du in användarens id i samma post som valet...

Medlem sedan dec. 19998 577 inlägg
#3

Oj, glömde nästan...

Välkommen hit!!! :)

Medlem sedan maj 2001684 inlägg
#4

Ok, tack för ditt svar och välkomnande Vide. Du verkar ha varit här ett tag med tanke på dina antal inlägg...
Vad gäller arrayer är jag inte så haj på det...hur jag göra? Så här ser min kod ut, det stämmer att värdena läggs i samma post i databasen med komma emellan.
<%
do until RS.EOF
rs("PA_ID") = Session("PA_ID")
rs("Syfte_ID") = Request.Form("syfte")
rs.movenext
loop %>

<%
rs.AddNew
Conn.close
set rs = nothing
set conn = nothing
%>

Tror du att du kan hjälpa mig lite till, bitte?

Medlem sedan mars 2001484 inlägg
#5

Jag brukar namnge checkboxarna dynamiskt i en loop.

x=1
do until rs.EOF
response.write "input type=""checkbox"" value=""<%=rs("ID")%>"" name=""check<%=x%>"">"
x=x--1
rs.movenext
loop
session("x")=x

Sen kan du enkelt hämta upp värdena från checkboxarna i en for-loop.

for i=1 to session("x")
if trim(request.form("check"+cstr(i)))<>"" then
'INSERT-koden
end if
next
Medlem sedan dec. 19998 577 inlägg
#6

Fast du kan ju naturligtvis inte använda asp-delimiters i ASP-koden... :)

x=1
do until rs.EOF
response.write "input type=""checkbox"" value=""rs("ID")"" name=""check"&x&""">"
x=x--1
rs.movenext
loop
session("x")=x
Medlem sedan maj 2001684 inlägg
#7

OK boys, tack för er hjälp. Jag fixar det dock inte riktigt. Här är del 1, som funkar:

<table width="400">
<tr><td>Projektanmälan: <%=Session("PA_ID")%> </td></tr>
<tr><td> </td></tr>
<form method="POST" action="form2_projektbakgrund2.asp">
<%
x=1
Do until rs.EOF %>
<tr><td>
<input type="checkbox" value="<% = rs("Syfte_ID") %>" name="check<%=x%>"><% = rs("Namn") %>
<%x= x--1%>
</td></tr>
<%
rs.movenext
loop
Session("PA_ID")= x %>

<%
rs.close
conn.close
set rs = nothing
set conn = nothing
%>

<tr><td> </td></tr>
<tr><td>
<input type=submit value="submit">
</form>
</td></tr></table>

Del 2 (mottagardelen)ser ut som följer, vad är fel i den??

<%
for i=1 to Session("PA_ID")
if trim(request.form("check"+cstr(i)))<>"" then %>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
set rs = server.createObject ("ADODB.Recordset")
Conn.Open "PA"

SQL = "SELECT * FROM PA_Koppling_Syfte"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1,2

rs("PA_ID") = Session("PA_ID")
rs("syfte_ID") = Request.Form("check")

rs.AddNew
Conn.close
set rs = nothing
set conn = nothing

end if
next
%>

Värdet 11 skrivs in som PA_ID, vilket inte är rätt. Vad göra? Tack på förhand!

Medlem sedan maj 2001684 inlägg
#8

Glöm mitt flum, det funkar nu! Tusen tack!

266 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)