Luego de varias lecturas a diversos casos en varios rubros del foro, doy uno de mis aportes.
En este caso, lo que yo estaba necesitando es que desde una página con dos combos que se cargan dinámicamente, al enviar el formulario (método get o post como es este caso) que se quede seleccionada la opción que el usuario marco antes de enviar los datos.
La función utilizando JQuery que hace lo que necesito es:
Código Javascript:
Ver original
$("#selUno option").each(function(){ if($(this).val() == uno){ $(this).val(uno).attr("selected", "true"); } });
Por ejemplo, tengo dos páginas.
cargarCombo.asp
Código ASP:
Ver original
<% Dim i i = 0 If (Request.QueryString("combo") = "1") Then While (i <= 10) Response.Write("<option value='" & i & "'>" & i & " --</option>") i = i + 1 Wend Else While (i <= 10) Response.Write("<option value='" & i * CInt(Request.QueryString("selUno")) & "'>" &_ Request.QueryString("selUno") & " x " &i & " -- " &_ i * CInt(Request.QueryString("selUno")) & "</option>") i = i + 1 Wend End If %>
testAjax.asp
Código ASP,HTML,JavaScript:
Ver original
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejemplo de JQuery con ASP</title> <!-- Acá deben colocar la referencia al archivo fuente de JQuery --> <script src="../resources/library/jquery-1.9.1.js"></script> <script> '--- Estas dos variables son para capturar los id de los elementos seleccionados en cada combo var uno, dos uno = <% If (Request.Form("selUno") = "") Then Response.Write("0") Else Response.Write(Request.Form("selUno")) End If %> dos = <% If (Request.Form("selDos") = "") Then Response.Write("0") Else Response.Write(Request.Form("selDos")) End If %> '--- Esta función rellena dinámicamente el segundo combo, '--- lo que hace es una simple multiplicación (tabla de multiplicar) y luego de rellenarlo, '--- verifica cual es el valor seleccionado y lo marca como selected function cargarComboDos(num){ $("#selDos").load("cargarCombo.asp?combo=2&selUno=" + num, function(){ $("#selDos option").each(function(){ if($(this).val() == dos){ $(this).val(dos).attr("selected", "true"); } }); }); } '--- Con esta funcion hacemos lo mismo que la anterior pero con el primer combo. $(document).ready(function(){ $("#selUno").load("cargarCombo.asp?combo=1", function(){ $("#selUno option").each(function(){ if($(this).val() == uno){ $(this).val(uno).attr("selected", "true"); } }); }); cargarComboDos(uno); }); </script> </head> <body> <h2> Combo selUno = <%= Request.Form("selUno") %> <br /> Combo selDos = <%= Request.Form("selDos") %> </h2> <form id="frmUno" action="" method="post"> <table width="30%"> <tr valign="middle"> <td> Número <select name="selUno" id="selUno" onchange="cargarComboDos(this.value)"> </select> </td> <td> Resultado <select name="selDos" id="selDos"> </select> </td> </tr> <tr> <td> </td> <td align="right"> <input type="submit" name="btnEnviar" value="Enviar" /> </td> </tr> </table> </form> </body> </html>
Sé que existen muchas alternativas para solucionar el mismo caso, los invito a quienes tengan alguna de ellas a compartirlo...
Espero que este ejemplo sirva de detonante para otras soluciones, como lo fue el post
http://www.forosdelweb.com/f179/recorrer-select-con-jquery-862155/
Muchas gracias... En breve publicaré más ejemplos de diversas tecnologías...
Saludos