Hola
Con permiso ... David
Creo que lo que necesitas es AJAX + (ASP o PHP). De tal forma que cuando se escoja una de las opciones del primer select mande a llamar un recorset ficticio, con el que se montará las opciones del segundo select. Esto sería un ejemplo
Código asp:
Ver originalArreglo2 = Array("ingles","frances","aleman")
' ========= Eliminamos los elementos repetidos de Arrglo1 y Arreglo2 ===
CONST adInteger = 3
CONST adOpenDynamic = 2
CONST adUseClient = 3
Set rs2 = Server.CreateObject("ADODB.Recordset")
With rs2
.CursorLocation = adUseClient ' El cursor
.CursorType = adOpenDynamic ' Como se recorre (rs)
.Fields.Append "elemento", adInteger, 255, &H00000020 ' Tipo de campo
.open
For z = 0 to UBound(Arreglo2)
.AddNew
.Fields("elemento") = Arreglo2(z) ' Inserta los datos de Arreglo2
.update
Next 'z
tmp = " elemento <> " & Join(Arreglo1, " AND elemento <> ") ' Hace consulta
.Filter = tmp ' Filtra valores iguales
.MoveFirst
%>
Hora Inicio 2 <select name="select2">
<option value="">Selecionar</option>
<%
do while not .eof
%>
<option value="<%=rs2("elemento")%>"><%=rs2("elemento")%></option>
<%
.Movenext
loop
%>
</select>
<%
.close
End With
Set rs2 = nothing
NOTA: Arreglo 1 es la opción seleccionada del primer select.
Suerte