NewanyString<%=mTypid%>[0] för exempelvis ArtID då.
Men detta är sånt strul, jag har ingen direkt lösning. Skulle bli tacksam för en lösning i ord som jag kan arbeta vidare på, gärna en komplett lösning om hur jag skall ange selectsatsen och options variablerna. Även hur jag delar upp detta sedan.
<%
DO UNTIL RS.EOF
mTypid = RS("UnderKatID")
%>
<tr>
<td align=left bgcolor="#DDDDDD" width="60%">
<INPUT TYPE="HIDDEN" NAME="kats" VALUE="kategori<%=RS("UnderKatID")%>">
<%=text%><%=RS("Kategori")%></font><br>
<SELECT name="kategori<%=RS("UnderKatID")%>" onChange="update(this.options[this.selectedIndex].value,'kategori<%=RS("UnderKatID")%>');">
<OPTION value="">Inget</OPTION>
<% DO UNTIL RS.EOF OR RS.BOF OR mTypid <> RS("UnderKatID")
mTypid = RS("UnderKatID")
strArtikel= RS("Artikel")
if Len(strArtikel) > 30 then
strArtikel = Left(strArtikel,30) & "..."
end if
namneller = "kategori" & RS("UnderKatID")
%>
<OPTION value="<%= RS("ArtID") %>;<%= RS("ArtExkl")%>;<%= RS("Artikel")%>"><%= strArtikel%> - <%= RS("ArtExkl")%>kr</OPTION>
<%
RS.MoveNext
IF RS.EOF THEN EXIT DO
Loop
%>
<OPTION value=""><% = mellan %></OPTION>
</SELECT>
<br>
</td>
<TD bgcolor="#DDDDDD" valign="top" align="center" width="20%"><INPUT SIZE="3" NAME="<%=namneller%>qty" onChange="checkQty(this);"></TD>
<TD bgcolor="#DDDDDD" valign="top" align="center" width="20%"><INPUT SIZE="6" NAME="<%=namneller%>exkl"></TD>
</tr>
<%
Loop
%>
Den koden fungerar perfekt, men nu skall jag hämta upp värderna som jag har loopat igenom.
Därmed kan jag tänka mig att göra en ny databas koppling och göra en ny loop..
Jag provade lite såhär:
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\dmab\test\DMAB2.mdb"
SQLStmt = "SELECT tabUnderKat.UnderKatID, tabUnderKat.Kategori, tabArt.ArtID, tabArt.ArtExkl, tabArt.UnderKatID, tabArt.Artikel FROM tabUnderKat INNER JOIN tabArt ON tabUnderKat.UnderKatID = tabArt.UnderKatID WHERE tabUnderKat.HuvudKatID = " & 1 & " ORDER BY tabArt.UnderKatID, tabArt.Artikel"
SET RS = Connection.Execute(SQLStmt)
Set RSObj = Server.CreateObject("ADODB.Recordset")
RSObj.ActiveConnection = Connection
RSObj.CursorType = 1 ' adOpenKeyset
RSObj.LockType = 3 'adLockOptimistic
If session("OrderID") = "" Then
RSObj.Source = "tabOrder"
RSObj.Open
RSObj.AddNew
RSObj("SaljarID") = 7
RSObj.Update
orderID = RSObj("OrderID")
Session("OrderID") = orderID
RSObj.Close
RSObj.Source = "tabOrderArt"
RSObj.Open
RSObj.AddNew
RSObj("OrderID") = orderID
Do Until RS.EOF
If Request.Form("kategori" & RS("Kategori")) <> "" Then
strArr=split(Request.Form("kategori" & RS("UnderKatID")),";")
x = strArr(0)
y = strArr(1)
z = strArr(2)
RSObj("ArtID") = x
RSObj("Artikel") = z
RSObj("ArtAnt") = Request.Form("kategori" & RS("UnderKatID") & "qty")
TAL = Request.Form("kategori" & RS("UnderKatID") & "exkl")
For i = 1 To Len(TAL)
If Asc(Mid(TAL,i,1)) > 47 AND Asc(Mid(TAL,i,1)) < 58 then
var = var & Mid(TAL,i,1)
End If
Next
RSObj("ArtExkl") = var
RS.MoveNext
Loop
RSObj.Update
RSObj.Close
Set RSObj = Nothing
Connection.Close
Else
RSObj.Source = "tabOrderArt"
RSObj.Open
RSObj.AddNew
RSObj("OrderID") = orderID
Do Until RS.EOF
If Request.Form("kategori" & RS("Kategori")) <> "" Then
strArr=split(Request.Form("kategori" & RS("UnderKatID")),";")
x = strArr(0)
y = strArr(1)
z = strArr(2)
RSObj("ArtID") = x
RSObj("Artikel") = z
RSObj("ArtAnt") = Request.Form("kategori" & RS("UnderKatID") & "qty")
TAL = Request.Form("kategori" & RS("UnderKatID") & "exkl")
For i = 1 To Len(TAL)
If Asc(Mid(TAL,i,1)) > 47 AND Asc(Mid(TAL,i,1)) < 58 then
var = var & Mid(TAL,i,1)
End If
Next
RSObj("ArtExkl") = var
RS.MoveNext
Loop
RSObj.Update
RSObj.Close
Set RSObj = Nothing
Connection.Close
End If
Om någon kan komma på någon lösning på mitt problem vore jag tacksam.
Saken är alltså att alla selectsatser som har något värde skall in i databasen. Därmed måste det ju ske genom en loop för att få fram namnet från selectsatsen.
Eller har jag fel?