webForumDet fria alternativet

Split/Selected?

4 svar · 227 visningar · startad av rdms

rdmsMedlem sedan jan. 200310 inlägg
#1

Halloj.

Sitter och bygger ett administrationsverktyg i ASP och har kört fast på redigeringsbiten..

Jag har en tabell i min databas som endast innehåller namnen på förarna, då jag skall spara resultatet loopas dessa ut i en dropmeny där jag väljer i vilken ordning dem kom i mål. Som value i dropmenyn sätter jag personens ID från databasen.
Resultatet som sparas blir alltså liknande: 12, 4, 65, 5, 3 (id-12 kom etta, id-4 kom tvåa osv.)

När jag sedan vill kunna redigera resultaten hämtas placeringarna in från databasen som vanligt, sedan kör jag en Split för att få loss varje resultat. Men hur jag än försöker så lyckas jag inte få rätt selected på rätt plats, just nu händer faktiskt ingenting.

Något tips på hur jag skall få det att fungera, eller kanske en bättre lösning?

Koden som hämtar värden ser ut så här:

    ' Bana
    Set RecSet = Connect.Execute("SELECT fldName FROM tblCourse ORDER BY fldName")
    If NOT RecSet.EOF Then arrCourse = RecSet.GetRows()
    RecSet.Close : Set RecSet = Nothing

    ' Heat
    Set RecSet = Connect.Execute("SELECT fldName FROM tblHeat ORDER BY fldName")
    If NOT RecSet.EOF Then arrHeat = RecSet.GetRows()
    RecSet.Close : Set RecSet = Nothing

    ' Förare
    Set RecSet = Connect.Execute("SELECT ID, fldNumber, fldName, fldMarke FROM tblDriver ORDER BY fldNumber")
    If NOT RecSet.EOF Then arrDriver = RecSet.GetRows()
    RecSet.Close : Set RecSet = Nothing

    ' Kontrollvärden
    arrRecSet = Connect.Execute("SELECT fldDate, fldCourse, fldHeat, fldResult, fldOvrigt FROM tblResult WHERE ID = "& trim(Request.Querystring("id"))).GetRows()

    strDate = arrRecSet(0,0)
    strCourse = arrRecSet(1,0)
    strHeat = arrRecSet(2,0)
    strResult = arrRecSet(3,0)
    strOvrigt = arrRecSet(4,0)
    arrResult = Split(strResult, ",")

Dropmenyn ser ut så här:

For i = 1 To cInt(UBound(arrDriver, 2)+1)

        Response.Write ""& vbcrlf &_
        "           <select name=""txResultat"" style=""width: 300px;"">"& vbcrlf &_
        "           <option value="""">&nbsp;"& i &"´a:</option>"& vbcrlf &_
        "           <option value="""">&nbsp;</option>"

            For d = 0 To UBound(arrDriver, 2)
                Response.Write "<option value="""& arrDriver(0,d) &""""
                    If arrResult(d) = arrDriver(0,d) Then Response.Write " selected=""selected"""
                Response.Write "> &nbsp; #"& arrDriver(1,d) &" - "& arrDriver(2,d) &", "& arrDriver(3,d) &"</option>"
            Next

        Response.Write ""& vbcrlf &_
        "           <option value="""">&nbsp;</option>"& vbcrlf &_
        "           </select>"& vbcrlf

        If i = 35 Then Exit For            

Next
rdmsMedlem sedan jan. 200310 inlägg
#2

Svårt detta... :(

Om jag använder detta:

For d = 0 To UBound(arrDriver, 2)

	If trim(arrResult([red][b]d[/b][/red])) = trim(arrDriver(0,d)) Then
		Response.Write "<option value="""& arrDriver(0,d) &""" selected=""selected"">Whatever..(selected)</option>"& vbcrlf
	Else
		Response.Write "<option value="""& arrDriver(0,d) &""">Whatever..</option>"& vbcrlf
	End If

Next

..uppfylls alltid Else-satsen.

Men om jag använder denna:

For d = 0 To UBound(arrDriver, 2)

	If trim(arrResult([red][b]0[/b][/red])) = trim(arrDriver(0,d)) Then
		Response.Write "<option value="""& arrDriver(0,d) &""" selected=""selected"">Whatever..(selected)</option>"& vbcrlf
	Else
		Response.Write "<option value="""& arrDriver(0,d) &""">Whatever..</option>"& vbcrlf
	End If

Next

..uppfylls alltid IF-satsen, vilket jag förstår.

Kan man inte jämnföra värden från arrays på detta sätt? :q

CatZMedlem sedan jan. 20022 341 inlägg
#3

på tal om ingenting alls..... kan man återanvända en getrows ?

CeeronMedlem sedan aug. 2000389 inlägg
#4

Välkommen till webForum :P

Alttid velat säga det :)

rdmsMedlem sedan jan. 200310 inlägg
#5

Tack! :)

Dock är jag i stort behov av hjälp också.. ;)

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb