Foros del Web » Programando para Internet » Javascript »

solucion listas dependientes + netscape 4.7x

Estas en el tema de solucion listas dependientes + netscape 4.7x en el foro de Javascript en Foros del Web. Bueno para varios que han trabajo con el ejemplo de listas dependientes dinamicas con mezcla de asp + javascript y han tenido problemas con el ...
  #1 (permalink)  
Antiguo 19/04/2003, 19:18
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 5 meses
Puntos: 0
solucion listas dependientes + netscape 4.7x

Bueno para varios que han trabajo con el ejemplo de listas dependientes dinamicas con mezcla de asp + javascript y han tenido problemas con el browser de netscape 4.7x.

Despues de varios reclamos por no saber cual es la solucion me di el trabajo de ver cual era el problema.

Con lo que posteo lo unico que falta es que quede seleccionado el primer option dinamico, pero es eso algo cosa de usar el selectedindex y listo.

espero les sirva.

Código:
<HTML>
<HEAD>
	<TITLE>Listas dependientes</TITLE>
</HEAD>
<!--inicializa las listas bakanzipp-->
<BODY onload="Cargar();">
<!--
Listas dependientes por Carlos de la Orden Dijs
17 de Diciembre de 2000
--->

<H2><CENTER>Listas dinámicas dependientes</CENTER></H2>
<P><B>Elige una categoría para ver los productos pertenecientes a ella:</B>
<P>
<FORM NAME="Listas" METHOD="POST" ACTION="receive.asp">
<B>Categorías</B>
<!-- el onchange viene con un flag de validacion para netscape bakanzipp-->
<SELECT NAME="Categorias" SIZE="1" OnChange="ComponerLista (document.forms.Listas.Categorias[selectedIndex].value,false);">
<%
Dim oConn, rs, SQL, cuenta, categoria

set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("ejemplo.mdb")

SQL="SELECT * FROM Categorias"
rs.Open SQL, oConn
cuenta=1
while not rs.EOF 
%>
	<OPTION VALUE="<%=rs.Fields("IdCategoria")%>" 
	<% if cuenta=1 then%>
		SELECTED
	<%end if%>>
	<%=rs.Fields("NomCategoria")%></OPTION>
<%
rs.MoveNext
cuenta=cuenta+1
wend
rs.Close
%>
</SELECT>
<P><B>Productos</B>
<!-- se agrega un width y heigth para que se visualice las opciones para netscape 4.7x bakanzipp-->
<SELECT NAME="Productos" SIZE="1" width=200 height=300>
</SELECT>
<P><INPUT TYPE="submit"></FORM>

<SCRIPT LANGUAGE="Javascript">
function Tupla ( campo1, campo2 )
{
	this.campo1 = campo1;
	this.campo2 = campo2;
}

<%
'Vamos a crear nuestros arrays de productos desde ASP
'El primer if detecta un cambio en la categoría para
'crear un nuevo array en Javascript

SQL="SELECT * FROM Productos ORDER BY Categoria, IdProducto"
rs.Open SQL, oConn
cuenta=0
cat="basura"
while not rs.EOF 
	if cat<>rs.Fields("Categoria") then
	' cambio de categoria, empiezo a contar en 0
		cuenta=0
		cat=rs.Fields("Categoria")
	'además tengo que crear un nuevo array para la categoría
%>
var opciones<%=cat%> = new Array();
<%
	end if
%>
opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=rs.Fields("Nombre")%>","<%=rs.Fields("IdProducto")%>");

<%
cuenta=cuenta+1
rs.MoveNext
wend
%>


 <%
'Limpiamos objetos
rs.Close
set rs=nothing
oConn.Close
set oConn=nothing
%>

var contador;

//el componer lista recibe un flag para el tema de netscape 4.7x bakanzipp
function ComponerLista ( array, flag ) {
// Compone la lista dependiente a partir
// del valor de la opcion escogida en la lista "padre"
BorrarLista();
array = eval("opciones" + array);
for (contador=0; contador<array.length; contador++) 
{
// añade elementos nuestro combobox
var optionObj = new Option( array[contador].campo1, array[contador].campo2 );
document.Listas.Productos.options[contador] = optionObj;
} // for
} // ComponerLista


function BorrarLista() {

	document.Listas.Productos.length=0;
}

//Inicializamos
//funcion modificada con un flag de inicializacion bakanzipp
function Cargar()
{
 var seleccion="1";
 var flag;
 
 if (seleccion!="")
  {
   flag=true;
   ComponerLista (seleccion,flag);  
  }
 else
    {
      flag=false;
      ComponerLista (0,flag);  
    }
 } 
</SCRIPT>
<br>
</FORM>

</BODY>
</HTML>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:22.