Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/03/2008, 17:37
Avatar de flaviovich
flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 9 meses
Puntos: 39
Pregunta Problema con combos anidados

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
(1lang(cnnDB"ClientName"))
End if 
DisplayError tiene:
Código PHP:
' DisplayError:
Procedure for creating error pages.
Sub DisplayError(eTypecomponent)

    
' 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
'    
2SQL error
'    3: Generic Error, just display full component string

    Select Case eType
    Case 1
        Response.Write "<b>" & component & "</b> " & _
          "&nbsp;" & 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>&nbsp;</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
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.