Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/10/2009, 12:00
lexmaniak
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 15 años, 6 meses
Puntos: 0
Combobox dependientes con valores por default ambos

Hola amigos, trabajo en una empresa que me pidio un formulario con las opciones basicas de borrado, agregar y actualizar. Los valores son adquiridos por medio de combobox y un par que son dependientes.

Los logre hacer funcionar a la perfeccion pero el problema fue cuando me toca hacer la pantalla de update, logre inicializar todos los combos exceptuando uno, el combo que no logre llenar fue el dependiente que se llena por medio de javascript .

Les anexo el Codigo que estoy trabajando:



<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<meta name="GENERATOR" content="Microsoft FrontPage 12.0"/>

<script type="text/javascript">

<!-- Hide this script from incompatible Web browsers!


function Actualiza(){

if(Relacion.preceptor.value==""){
alert("Ingresa un nombre");
}
else if(Relacion.generacionIni.value==""){
alert("Debes escoger una generacion inicial");
}
else if(Relacion.generacionFin.value==""){
alert("Debes escoger una generacion final")
}

else if(Relacion.Grupo.value==""){
alert("Debes escoger un Grupo");
}
else if(Relacion.Equipo.value==""){
alert("Debes escoger un Equipo");
}
else if(Relacion.zona.value==""){
alert("Escoge un zona de comedor");
}
else if(Relacion.subcatagory.value==""){
alert("Escoge un comedor");
}
//Una vez validados todos los datos procede a enviarlos a updatePreceptor.asp =D
else{

document.Relacion.guarda.value = 3;
document.Relacion.submit();
window.opener.location.reload();
window.close();



}
}






<%
dim rs_ncom
dim querycom

set rs_ncom = server.CreateObject("ADODB.Recordset")

querycom = " select id_comedor,id_zonacomdr,str_nombcomdr from Comedores "&_
" where id_zonacomdr <> 8 " &_
" and id_zonacomdr <= 15"&_
" order by n_orden"

rs_ncom.open querycom,objConn

dim x,y
x=0

%>

function sublista(inform, selecteditem){ //esta es la funcion con la que lleno el segundo combobox al realizar el metodo onchange del primer combo
//alert("entro");
inform.subcatagory.length = 0

<%
dim count
count= 0
y=0
do while not rs_ncom.eof
%>

x = <%= trim(y) %>;

subcat = new Array();
subcatagorys = "<%=replace(rs_ncom("str_nombcomdr"),"""","\""")%> ";
subcatagoryof = "<%=replace(rs_ncom("id_zonacomdr"),"""","\""" ) %>";
subcatagoryid = "<%=replace(rs_ncom("id_comedor"),"""","\""") %>";
subcat[x,0] = subcatagorys;
subcat[x,1] = subcatagoryof;
subcat[x,2] = subcatagoryid;

if (subcat[x,1] == selecteditem) {
var option<%= trim(count) %> = new Option(subcat[x,0], subcat[x,2]);
inform.subcatagory.options[inform.subcatagory.length]=option<%= trim(count)%>;
}

<%
count = count + 1
y = y + 1
rs_ncom.movenext
loop
rs_ncom.close
set rs_ncom = nothing
%>

}

// Hide this script from incompatible Web browsers! -->
</script>

<style type="text/css">
<!--
A:visited {color:#324395; text-decoration: none}
A:hover {color:white;background-color: #7D8BBE; text-decoration: none}
A:active {color:red;background-color: white; text-decoration: none}
A:link {color:#324395; text-decoration: none}
BODY {scrollbar-3dlight-color:#CFDCE8;
scrollbar-arrow-color:#304498;
scrollbar-base-color:#B7BFD9;
scrollbar-darkshadow-color:#304498;
scrollbar-face-color:#98A4C8;
scrollbar-highlight-color:#D6DAE9;
scrollbar-shadow-color:#2557A3}

//-->
</style>
<title>IPADE CDI | MEDEX Modificacion para datos del Preceptor</title>
<meta name="ProgId" content="FrontPage.Editor.Document"/>
</head>




<body scroll="auto" >
<div align="center">
<center>
<table width="695" height="265" border="0" style="font-family: Tahoma; font-size: 10pt">

<tr>
<td height="65" colspan="5"><p align="right"><b><font face="Tahoma" size="1"><a href="#" onClick="window.close()">cerrar ventana</a></font></b></td>
</tr>

<tr>
<td height="41" colspan="5" bgcolor="#E7E7F7"><font face="Tahoma" size="1"><img src="images/buppchi100.gif" border="0" width="7" height="7">&nbsp; </font><strong><font size="2" face="Tahoma">Actualización de datos del preceptor</font></strong></td>
</tr>
<form method="get" name="Relacion" id="Relacion" action="updatePreceptor.asp">
<%
dim rs
dim sql,rscom
dim idptr1

idptr1 = request.QueryString("idptr")

set rs = server.CreateObject("ADODB.Recordset")
set rscom = server.CreateObject("ADODB.Recordset")

sql = " select id_preceptor,str_genini,str_genfin,Equipo,nombre_p receptor,zona_com,comedor,"&_
" Grupo from Cdimx_preceptor"&_
" where id_preceptor=" &idptr1


rs.Open sql,condb
'response.Flush
'response.Write sql
%>

<input type="hidden" name="guarda" id="guarda" value="0">
<input type="hidden" name="idpre" id="idpre" value="<%=rs("id_preceptor") %>" />

</td>
<td width="96"><font size="1"><b>Grupo:</b></font>
<%
dim rsCatalogo
set rsCatalogo = server.CreateObject("ADODB.Recordset")
Sql = "select id_grupo, Nombre from c_gruposca where id_grupo in (2,3,4)"
rsCatalogo.Open Sql, condb%>
<select size="1" name="Grupo" style="font-family: Verdana; font-size: 8pt;width:100px; vertical-align:middle;">
<option value="" >---</option>
<%While Not rsCatalogo.EOF%>
<option value="<%=rsCatalogo("Nombre").Value%>" <% If (rsCatalogo("Nombre"))=(rs("Grupo")) Then %> <% Response.Write "Selected" %><%End If%>><%=rsCatalogo("Nombre").Value%></option>
<%
rsCatalogo.MoveNext
Wend
rsCatalogo.Close
%>
</select></td>




<td width="97"><font size="1"><b>Equipo:</b></font>
<select size="1" name="Equipo" style="font-family: Verdana; font-size: 8pt;width:110px; vertical-align:middle;" >
<option value="" >---</option>
<%dim i
for i=1 to 20
%>
<option value="<%=i%>" <% If i=(rs("Equipo")) Then%> <%Response.write "Selected"%> <%End If%>><%=i%></option>
<%
next

%></select>

</td>
</tr>
<tr>
<td height="38"><font size="1"><b>Zona Comedor:</b></font><br/>
<select name="zona" id="zona" onchange="sublista(this.form,zona.value);" >
<option value="" > -- Zona -- </option>
<%
dim queryzon

queryzon = " select id_zonacmdr,str_zonacmdr from c_zona_comedores " &_
" where sede = 6 " &_
" and id_zonacmdr <> 8 " &_
" order by n_orden "

rscom.Open queryzon,objConn

'response.Flush
'response.Write queryzon

while not rscom.EOF


%>
<option value="<%=rscom("id_zonacmdr") %>" <%if rs("zona_com")=rscom("str_zonacmdr") Then %><%Response.write "selected" %><%end if %> ><%=rscom("str_zonacmdr") %></option>
<%'Aqui utilize el if para inicializar el valor con el dato de la base %>
<%rscom.movenext
wend
rscom.close
set rscom = nothing%>


</select>
</td>

</tr>
<tr>

Aqui es donde empieza mi problema no puedo inicializar mi combo pq el html en el momento de ejecucion trae el combo subcatagory vacio y por obvias razones no puedo usar el if que ocupe en todos mis combobox si se dan cuenta.

<td height="38"><font size="1"><b>Comedor:</b></font><br/>
<select id="subcatagory" name="subcatagory">
<option value="" >-- Comedor --</option>
</select>
</tr>

</form>
</table>

<a target="_blank" onclick="javascript:Actualiza();" onMouseOver="guardar.src='images/bocagdaA00.gif';return true;" onMouseOut="guardar.src='images/bocagda_00.gif';return true;">
<img name="guardar" border="0" src="images/bocagda_00.gif" width="104" height="19"/ style="cursor:hand;"></a>
</center>
</div>



<%
conDB.close
set conDB = nothing
%>

La pregunta seria ¿Como logro inicializar el segundo combobox con el valor que traiga la base de datos ?

Espero me puedan ayudar por favor de antemano gracias