webForumDet fria alternativet

2 selectlistor som listas från databas... få värde att stanna kvar

JavaScript

0 svar · 140 visningar · startad av brw

Medlem sedan juli 2000619 inlägg
Frågan#1

Jag har följande kod som listar fram grupper och sen undergrupp med namn.

Dvs om jag har gruppen:

Admin och väljer den så listas alla namn som finns med i gruppen admin i en ny selectbox osv.

Nu har jag problemet att när jag går in och redigerar en befintlig post så måste jag varje gång välja grupp och namn på nytt eftersom den inte kommer ihåg värdet.

Jag har ID-nummret på gruppid och userid om man kan använda det. Jag har lyckats få den att välja rätt grupp och göra den SELECTED men på namn var det lite svårare då den skrivs ut dynamiskt via nåt javascript.

Nån som har en idé på en lösning?

'befintliga värden om man redigerar posten

gruppid = RS("gruppid")
userid = RS("userid")

Set rsX = Server.CreateObject("ADODB.Recordset")

sQuery = "SELECT grupp.gruppnamn, users.name, " & _
    "grupp.Id AS gID, users.Id AS uID " & _
    "FROM users INNER JOIN grupp " & _
    "ON users.gruppid = grupp.Id " & _
	 "ORDER BY grupp.gruppnamn, users.name"

rsX.Open sQuery, Connection, adOpenForwardOnly, adLockReadOnly, adCmdText

If rsX.EOF Then
    Response.Write "Inga grupper.<BR>"
Else

    ' write the group listbox...

    Response.Write "<SELECT NAME=""group"" class=""formular"" ONCHANGE=""groupselected(this);"" >"
    Response.Write "<OPTION VALUE=0>Select group</OPTION>"

    ' write the entry code for the javascript...

    sJavaScript = "function groupselected(elem){" & vbCrlf & _
        "for (var i = document.f1.names." & _
        "options.length; i >= 0; i--){" & vbCrlf & _
        "document.f1.names.options[i] = null;" & _
        vbCrlf

    ' loop through the recordset...

    Do Until rsX.EOF

        ' is this a new bransch?
        If sLastbransch <> rsX("gruppnamn") Then

            ' if so, add an entry to the first listbox
            sLastbransch = rsX("gruppnamn")
            Response.Write "<OPTION VALUE=" & rsX("gID") & "" 
If RSx("gid") = groupid Then Response.Write " Selected" End If
Response.Write  ">" & sLastbransch & "</OPTION>"

            ' and add a new section to the javascript...
            sJavaScript = sJavaScript & "}" & vbCrlf & _
                "if (elem.options[elem.selectedIndex].value==" 

'If command <> "new" AND userid > 0 Then
'sJavaScript = sJavaScript & userid & "){" & vbCrlf

'Else
                sJavaScript = sJavaScript & rsX("gID") & "){" & vbCrlf
'End If

        sJavaScript = sJavaScript & _
		 "document.f1.names.options[document.f1.names.options.length] = new Option('Select name','0');" & _
	 	 vbCrlf

        End If

        ' and add a new nameline to the javascript...
                'sJavaScript = sJavaScript & _

 
        
        sJavaScript = VBCRLF & sJavaScript & _
            "document.f1.names.options[document." & _
            "f1.names.options.length] = new Option('" & _

            rsX("name") & "','" & rsX("uID") & "');" & _
vbCrlf
        rsX.MoveNext
    Loop

    ' finish the group listbox...
    Response.Write "</SELECT>"

    ' create the kategori listbox...

    Response.Write "&nbsp;&nbsp;&nbsp;<SELECT NAME=""names"" class=""formular"">"
    Response.Write "<OPTION value=""0"">Select name</OPTION>"
    Response.Write "</SELECT>"

    ' put the last line on the javascript and write it out...
    sJavaScript = sJavaScript & vbCrlf & "}" & vbCrlf & "}" & vbCrlf

    Response.Write "<SCR" & "IPT LANGUAGE=""JavaScript"">" & vbCrlf
    Response.Write sJavaScript & vbCrlf & "</SCR" & "IPT>" & vbCrlf
End If
rsX.Close
Set rsX = Nothing
256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)