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...
7 svar · 199 visningar · startad av soffan76
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.
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...
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?
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
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
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!
Glöm mitt flum, det funkar nu! Tusen tack!