webForumDet fria alternativet
Logga in / Bli medlem

Sortera checkboxar

ASP

1 svar · 199 visningar · startad av Sebbe

Medlem sedan jan. 20032 285 inlägg
Trådstart#1

Jaha, nu är det jag som ska fråga. :)

Jag håller på med ett sänkaskepp spel, och nu har jag kommit fram till när man ska placera ut sina båtar. Det är ju så att man måste sätta dom ("prickarna") på en rad, lodrätt eller vågrätt. Jag har den här koden för att kolla om de ("prickarna") är på rad:

arrNum = Array("A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","D1","D2","D3","D4","D5","D6","D7","D8","D9","D10","E1","E2","E3","E4","E5","E6","E7","E8","E9","E10","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","G1","G2","G3","G4","G5","G6","G7","G8","G9","G10","H1","H2","H3","H4","H5","H6","H7","H8","H9","H10","I1","I2","I3","I4","I5","I6","I7","I8","I9","I10","J1","J2","J3","J4","J5","J6","J7","J8","J9","J10")
arrBok = Array("A1","B1","C1","D1","E1","F1","G1","H1","I1","J1","A2","B2","C2","D2","E2","F2","G2","H2","I2","J2","A3","B3","C3","D3","E3","F3","G3","H3","I3","J3","A4","B4","C4","D4","E4","F4","G4","H4","I4","J4","A5","B5","C5","D5","E5","F5","G5","H5","I5","J5","A6","B6","C6","D6","E6","F6","G6","H6","I6","J6","A7","B7","C7","D7","E7","F7","G7","H7","I7","J7","A8","B8","C8","D8","E8","F8","G8","H8","I8","J8","A9","B9","C9","D9","E9","F9","G9","H9","I9","J9","A10","B10","C10","D10","E10","F10","G10","H10","I10","J10")

j = 0
l = 0
For Each str In Request.Form
  If Request.Form(str) = 1 Then
    If j = 0 Then
      For i = 0 To UBound(arrNum)
        If arrNum(i) = str Then
          intNum = i
          Exit For
        End If
      Next
      For i = 0 To UBound(arrBok)
        If arrBok(i) = str Then
          intBok = i
          Exit For
        End If
      Next
      j = 1
    Else
      If str = arrBok(intBok + 1) OR str = arrNum(intNum + 1) Then
        For k = 0 To UBound(arrNum)
          If arrNum(k) = str Then
            intNum = k
            Exit For
            l = 1
          End If
        Next
        If l = 0 Then
          For k = 0 To UBound(arrBok)
            If arrBok(k) = str Then
              intBok = k
              Exit For
            End If
          Next
        End If
      Else
        Server.Transfer("fel.asp")
      End If
    End If
    intSt = intSt + 1
  End If
Next

Nu till problemet: När jag skriver ut vilka checkboxar jag klickade i skrivs de ut i oordning; t.ex: A3, A1, A2, A5, A4. På så sätt är det ju omöjligt för arrayen att veta att de är i ordning, fasstän de är det.

Det jag undrar är om det finns något sätt att ordna resultaten på, så att de listas: A1, A2, A3, A4, A5?

Medlem sedan mars 20015 287 inlägg
#2

Jag föreslår då, som sagt ;) , att du skippar formloopen: "For Each str In Request.Form" och kör en loop baserad på din array - på så sätt får du ju alla formfält samt de kommer i en ordning som du kan kontrollera.

<%
arrNum = Array("A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","D1","D2","D3","D4","D5","D6","D7","D8","D9","D10","E1","E2","E3","E4","E5","E6","E7","E8","E9","E10","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","G1","G2","G3","G4","G5","G6","G7","G8","G9","G10","H1","H2","H3","H4","H5","H6","H7","H8","H9","H10","I1","I2","I3","I4","I5","I6","I7","I8","I9","I10","J1","J2","J3","J4","J5","J6","J7","J8","J9","J10")

For koll = 0 to ubound(arrNum)
	str = arrNum(koll)

	If Request.Form(str) > 0 then
		response.write str & " : " &  Request.Form(str) & "<br>"
	End If
Next
%>
269 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)