webForumDet fria alternativet

Select / Request.Form / Problem

9 svar · 215 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19992 966 inlägg
#1

Hej!

Jag har problem nu!

						<%
						DO UNTIL RS.EOF
						mTypid = RS("UnderKatID")
						%>
			
						<%=text%><%=RS("Kategori")%></font><br>
						<SELECT name="<%=RS("Kategori")%>" onChange="tal<%=RS("UnderKatID")%> = this[this.selectedIndex].pris *1,updatera()"> 
						<OPTION name="processor" pris="0" 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
						%>
			
					      <OPTION name="<%=RS("Kategori")%>" pris="<%=RS("ArtExkl")%>" value="<%= RS("ArtID") %>"><%= strArtikel%> - <%= RS("ArtExkl")%>kr</OPTION>
						
						<%
						RS.MoveNext
						IF RS.EOF THEN EXIT DO
						Loop
						%>
						<OPTION value=""><% = mellan %></OPTION>
						</SELECT>
						<br>
			
						<%
						Loop
						%>

Jag vill alltså på nästa sida kunna hämta flera variabler, såsom Request.Form("Pris")
Request.Form("Namn")
Request.Form("Antal")
Request.Form("ID")

Men detta går ju inte då, select endast kan inneha value="". Min pris="" Är ju inte giltig. Någon som har något tips angående detta?

Jag tänkte man kunde avskilja med ;

Typ såhär:

<%=RS("ArtID")%>;<%=RS("ArtExkl")%>;<%=RS("Antal")%>;<%=RS("Artikel")%>

Och sedan skilja på det så här:

anyString<%=mTypid%> = document.form1.<%=RS("UnderKatID")%>.options[document.form1.<%=RS("UnderKatID")%>.selectedIndex].value;

NewanyString<%=mTypid%> = anyString<%=mTypid%>.split(";");

För att sedan kämta upp informationen genom:

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.

Även kodlösningar accepteras.

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

VideMedlem sedan dec. 19996 094 inlägg
#2

Alvarligt talat förstår jag inte vad du vill... vill skicka med värden ifrån alla select?

Förklara ytterliga... har du kanske en sida man kan kolla på?

------------------
Ha alltid ett mellanrum mellan och och och, och min hemsida: webeye.nu

BrimbaMedlem sedan dec. 19992 966 inlägg
#3

Hej!

Jag (err Emission) har löst det nu ;)

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

VideMedlem sedan dec. 19996 094 inlägg
#4

OK... *Men Vide är fortfarande väldigt sugen på att veta vad Brimba menade... och svaret ocksp :)*

------------------
// Vide - Moderator, webForum

BrimbaMedlem sedan dec. 19992 966 inlägg
#5

Mer problem.

						<%
						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?

Tack!

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

emissionMedlem sedan dec. 19996 095 inlägg
#6

Psst! Du har ett antal hidden-fält som innehåller namnen på alla select:ar. Dat's evrysing yo need, my friend.

BrimbaMedlem sedan dec. 19992 966 inlägg
#7

Ok, du menar ungefär att jag skall ta fram alla kats och loopa igenom dessa eller? :q

------------------
Mvh
Patrik
aka Brimba

www.datormaklarna.se
patrik@datormaklarna.se

emissionMedlem sedan dec. 19996 095 inlägg
#8

Jupp

BrimbaMedlem sedan dec. 19992 966 inlägg
#9

intehänu

Hu é dé mé Schwenskán ÉmíSSioN? :e

emissionMedlem sedan dec. 19996 095 inlägg
#10
for i=1 to request.form("kats").count
   thiskat=request.form("kats")(i)
   blablabla....
next
132 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
128 ms — hämta tråd, inlägg och bilagor (db)