webForumDet fria alternativet

Dela upp array från en array

2 svar · 220 visningar · startad av SPiN

SPiNMedlem sedan mars 20007 896 inlägg
#1

Hej!

En sida som jag skapar har jag lite problem med nu, jag vill lista alla ämnen och tillhörande klasser i två olika select satser.

Informationen hämtar jag från en databas där fältet med ämnen och tillhörande klasser ligger i samma post. Jag skiljer dem ifrån varandra med kommatecken och stjärnor.
Ex:
Spanska - 2D*2E*3D, EngelskaA - 1A*1C*1E, EngelskaB - 2A*2D*2E

Alltså 2D, 2E och 3D har spanska, 1A, 1C och 1E har engelska A osv.

När jag delar upp dem använder jag mig av detta sätt:

' Dela upp klientens ämnen och klasser i ämnet i arrays
arrSubjectAndClass = split(objRS("subjects"), ", ")
countSubjectAndClass = uBound(arrSubjectAndClass) + 1
X = 0
Do Until X = countSubjectAndClass
xTemp = split(arrSubjectAndClass(X), " - ")
If sSubject = "" then
sSubject = xTemp(0)
Else
sSubject = sSubject & ", " & xTemp(0)
End If
If sKlasser = "" then
sKlasser = xTemp(1)
Else
sKlasser = sKlasser & ", " & xTemp(1)
End If
X = X + 1
Loop

' Dela upp bara ämnena i en array
arrSubject = split(sSubject, ", ")

' Räkna antalet ämnen
countSub = uBound(arrSubject) + 1
X = 0
%>

info info info
<%
      		' Loopa alla ämnen
      		Do Until X = countSub
      		Response.Write "<option value=""" & arrSubject(X)
      		
      		' Kolla om ämnet är valt, isf markera det
      		If Request.QueryString("subject") = arrSubject(X) then
      		Response.Write """ selected>" & arrSubject(X) & "</option>"
      		Else
      		Response.Write """>" & arrSubject(X) & "</option>"
      		End If
      		
      		X = X + 1
      		Loop
      
      		' Kolla om läraren har en ansvarsklass, och skriv ut den
      		If Not objRS("klass") = "-666" then
      		' Kolla om valt ämne är ansvarsklassen, isf markera den
      		If Request.QueryString("subject") = objRS("klass") then
      		Response.Write "<option value=""" & objRS("klass") & """ selected>" & objRS("klass") & "</option>"
      		Else
      		Response.Write "<option value=""" & objRS("klass") & """>" & objRS("klass") & "</option>"
      		End If
      		end if
      		%>
      	</select></td>
      	<td align="left"><select name="class" id="cls" onChange="updateStudents();">
      		<%
      		If Not Request.QueryString("subject") = "" then
      		
      		Dim countClass, arrClass, ClassEs, countClassEs
      		ClassEs = split(sKlasser, ", ")
      		countClassEs = uBound(ClassEs) + 1
      		X = 0
      		
      		Do Until X = countClassEs
      		If InStr(1, ClassEs(X), Request.QueryString("subject")) then
      		arrClass = split(ClassEs(X), "*")
      		End If
      		X = X + 1
      		Loop
      		
      		If IsArray(arrClass) then
      		countClass = uBound(arrClass) + 1
      		X = 0
      		
      		Do Until X = countClass
      		Response.Write "<option value=""" & arrClass(X) & """>" & arrClass(X) & "</option>"
      		X = X + 1
      		Loop
      		end if
      		Response.Write "<option> </option>"
      		
      		Else
      		Response.Write "<option> </option>"
      	
      		End If
      		X = 0
      		%>
      		
      	</select></td>

Det här fungerar inte, troligtvis skiter det sig på InStr(1,... då den inte räknar med första bokstaven i ämnet vilket resulterar i att det inte finns några ämnen för t.ex. ngelskaA eller panska

Hoppas nån vet hur jag ska lösa det!
Lessen för all kod, vet att det blev lite mycket :l

------------------
SPiN, bjorne.w@telia.com

VideMedlem sedan dec. 19998 577 inlägg
#2

Skulle det inte vara lättare att lägga upp de olika värdena i egna fält?

------------------
It's not that I'm afraid to die. I just don't want to be there when it happens.
Kom hem till mig...

SPiNMedlem sedan mars 20007 896 inlägg
#3

Nää, jag har redan provat det, och det var rätt krångligt. Kanske får prova igen, om jag inte hittar en lösning...

------------------
SPiN, bjorne.w@telia.com

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)