Amigos, necesito de vuestra ayuda.
Tengo un formulario, en el tengo 2 combos enlazados, el script de estos combos es generado en ASP:
Código HTML:
<script type="text/javascript">
function addOpt(oCntrl, iPos, sTxt, sVal)
{
var selOpcion=new Option(sTxt, sVal);
oCntrl.options[iPos]=selOpcion;
}
function CambiaModelo(oCntrl)
{
oCntrl.length=0
switch (document.getElementById("marca").selectedIndex)
{
<%
dim rs_marca, rs_modelo
i = 0
Set rs_marca = SQLQuery(cnnDB, "SELECT * FROM marcas ORDER BY cod_marca ASC")
If Not rs_marca.EOF Then
Do While Not rs_marca.EOF
%>
case <% = rs_marca("cod_marca") %>:
<%
dim detModelos
j = 1
Set rs_modelo = SQLQuery(cnnDB, "SELECT * FROM marca_modelos WHERE cod_marca=" & rs_marca("cod_marca") & " ORDER BY dsc_modelo ASC")
If Not rs_modelo.EOF Then
detModelos="addOpt(oCntrl, " & 0 & ", 'Seleccione un modelo', 0);" & vbCR
Do While Not rs_modelo.EOF
detModelos=detModelos & "addOpt(oCntrl, " & j & ", '" & rs_modelo("dsc_modelo") & "', " & rs_modelo("cod_modelo") & ");" & vbCR
j = j + 1
rs_modelo.MoveNext
Loop
Response.Write detModelos
End If
%>
break;
<%
i = i + 1
rs_marca.MoveNext
Loop
End If
%>
}
}
Cuando se presiona grabar los datos del formulario, estos se validan en ASP asi:
Código PHP:
If Len(uid)=0 Then
Call DisplayError(1, lang(cnnDB, "ClientName"))
End if
DisplayError tiene:
Código PHP:
' DisplayError:
' Procedure for creating error pages.
Sub DisplayError(eType, component)
' Create the web page
If Not Application("Debug") Then
Response.Clear
Response.Write("<html><head><title>ERROR</title></head><body>")
End If
Response.Write "<p><center><table width=""200""><tr><td bgcolor=""red"" align=""center"">" & _
"<b>ERROR</b></tr></td><tr><td bgcolor=""#eeeeee"" align=""center"">"
' Error Types:
' 1: Missing required field
' 2: SQL error
' 3: Generic Error, just display full component string
Select Case eType
Case 1
Response.Write "<b>" & component & "</b> " & _
" " & lang(cnnDB, "isarequiredfield") & ".<p>" & _
"<i>" & lang(cnnDB, "PleasepresstheBACKbutton") & "</i></p>"
Case 2
Response.Write(lang(cnnDB, "ASQLqueryhasfailed") & ". ")
Case 3
Response.Write(component)
End Select
' Finish off the table and page
Response.Write("</tr></td></table></center><p> </p></body></html>")
Stop processing the .asp file
Response.End()
End Sub
Si se ejecuta este procedimiento se pasa a una pantalla donde aparece un mensaje:
Código:
ERROR
Nombre del cliente es un campo requerido.
Por favor presione el boton RETROCEDER
El problema viene aqui al retroceder se pierde el item seleccionado en el segundo combo.
Me hablaron de usar Session, pero no entiendo como recuperarlo al retroceder.
Ojala alguien pueda ayudarme.
Gracias