Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/09/2007, 12:26
Avatar de jahman
jahman
 
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 21 años
Puntos: 0
3 listas dependientes

hola como estan, logre hacer dos listas dependientes pero lamentablemente la 3 lista no carga, les explico en realidad lo que necesito son una seguidilla de lista que se van a ir armando segun el arbol que posean para esto se necesitan ir recibiendo las opciones anteriores para ir consultando y generando las demas listas pero creo que no estoy enviando bien als variables....
espero que me puedan ayudar.Gracias...

vd.asp
Código HTML:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/acceso.asp" -->
<%
If (Request.Form("FirstOp") <> "") Then 
  FirstOp = Request.Form("FirstOp")
End If

If (Request.Form("SecondOp") <> "") Then 
  SecondOp = Request.Form("SecondOp")
End If

If (Request.Form("ThirdOp") <> "") Then 
  ThirdOp = Request.Form("ThirdOp")
End If

%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>
<script language="javascript" type="text/javascript"> 
function nuevoAjax() { 
   /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por 
   lo que se puede copiar tal como esta aqui */ 
   var xmlhttp=false; 
   try    { 
      // Creacion del objeto AJAX para navegadores no IE 
      xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
   } 
   catch(e)    { 
      try       { 
         // Creacion del objet AJAX para IE 
         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch(E) { xmlhttp=false; } 
   } 
   if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 
   return xmlhttp; 
} 

function cargaContenido() { 
   	var valor=document.getElementById("select_0").options[document.getElementById("select_0").selectedIndex].value; 
   		if(valor==0) {      // Si el usuario eligio la opcion "Elige", no voy al servidor y pongo todo por defecto 
      		combo=document.getElementById("select_1"); 
      		combo.length=0; 
      		var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="-- Select --"; 
      		combo.appendChild(nuevaOpcion);   combo.disabled=true; 
   		} 
   		else { 
      		ajax=nuevoAjax(); 
      		ajax.open("GET", "select_ajax.asp?FirstOp="+valor, true); 
      		ajax.onreadystatechange=function()	{ 
         	if (ajax.readyState==1)  { 
            // Mientras carga elimino la opcion pongo una que dice "Cargando" 
            	combo=document.getElementById("select_1"); 
            	combo.length=0; 
            	var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando..."; 
            	combo.appendChild(nuevaOpcion); combo.disabled=true;    
         	} 
         	if (ajax.readyState==4) { 
            	document.getElementById("fila_2").innerHTML=ajax.responseText; 
         	} 
      	} 
      	ajax.send(null); 
   	} 	
} 


function cargaContenidoI() { 
   	var valorI=document.getElementById("select_1").options[document.getElementById("select_1").selectedIndex].value; 
   		if(valorI==0) {      // Si el usuario eligio la opcion "Elige", no voy al servidor y pongo todo por defecto 
      		comboI=document.getElementById("select_2"); 
      		comboI.length=0; 
      		var nuevaOpcionI=document.createElement("option"); nuevaOpcionI.value=0; nuevaOpcionI.innerHTML="-- Select --"; 
      		comboI.appendChild(nuevaOpcionI);   comboI.disabled=true; 
   		} 
   		else { 
      		ajaxI=nuevoAjax(); 
      		ajaxI.open("GET", "ThirdOp.asp?FirstOp="+valor+"&SecondOp="+valorI, true); 
      		ajaxI.onreadystatechange=function() 
      		{ 
         	if (ajaxI.readyState==1)  { 
            // Mientras carga elimino la opcion pongo una que dice "Cargando" 
            	comboI=document.getElementById("select_2"); 
            	comboI.length=0; 
            	var nuevaOpcionI=document.createElement("option"); nuevaOpcionI.value=0; nuevaOpcionI.innerHTML="Cargando..."; 
            	comboI.appendChild(nuevaOpcionI); comboI.disabled=true;    
         	} 
         	if (ajaxI.readyState==4) { 
            	document.getElementById("fila_3").innerHTML=ajaxI.responseText; 
         	} 
      	} 
      	ajaxI.send(null); 
   	} 
}
</script> 
</head> 

<br> 
<input type="text" name="a" value="<%=FirstOp%>"> 
<input type="text" name="a" value="<%=SecondOp%>"> 
<form name="aqui" method="POST" action="VD.asp"> 
<table width="400" style="border-style:none;"> 
  	<tr> 
    	<td id="fila_1" width="50%">
		<select name="FirstOp"  id="select_0"  onChange="cargaContenido()">
			<option>-- Select --</option>
			<%
			Set SelectI = Server.CreateObject("ADODB.Recordset")
			SelectI.ActiveConnection = MM_acceso_STRING
			SelectI.Source = "SELECT DISTINCT FirstOp FROM TreeDatosFCR_index order by FirstOp "
			SelectI.CursorType = 1
			SelectI.CursorLocation = 2
			SelectI.LockType = 1
			SelectI.Open()
			while NOT SelectI.EOF %>
				<option value="<%=SelectI.Fields("FirstOp")%>"><%=SelectI.Fields("FirstOp")%></option>
			<% SelectI.movenext()
			Wend%>
		</select>
		</td>
	</tr>
	<tr>
   		<td id="fila_2" width="50%">
     	<select disabled="disabled" id="select_1" name="SecondOp" onChange="cargaContenidoI()">
       		<option id="valor_defecto" value="0">-- Select --</option>
     	</select>
		</td> 
  	</tr>
	<tr>
   		<td id="fila_3" width="50%"> 
     	<select disabled="disabled" id="select_2" name="ThirdOp">
       		<option id="valor_defectoI" value="0">-- Select --</option>
     	</select>
		</td> 
  	</tr> 
</table> 
<input type="submit" name="algo" value="Enviar"> 
</form>

</body>
</html> 
segundo_select.asp
Código HTML:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/acceso.asp" -->
<%
If (Request.QueryString("FirstOp") <> "") Then 
  FirstOp = Request.QueryString("FirstOp")
End If

%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<%
Set SelectII = Server.CreateObject("ADODB.Recordset")
SelectII.ActiveConnection = MM_acceso_STRING
SelectII.Source="SELECT DISTINCT SecondOp FROM TreeDatosFCR_index WHERe FirstOp ='"& FirstOp &"' ORDER BY SecondOp"
SelectII.CursorType = 1
SelectII.CursorLocation = 2
SelectII.LockType = 1
SelectII.Open()
%>
   	<select id="select_1" name="SecondOp">
    	<% while NOT SelectII.EOF %>
     	<option value="<%=SelectII.Fields("SecondOp")%>"><%=SelectII.Fields("SecondOp")%></option>
	 	<% SelectII.movenext()
	 	wend %>
	</select>

</body>
</html> 
tercer_select.asp
Código HTML:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/acceso.asp" -->
<%
If (Request.QueryString("FirstOp") <> "") Then 
  FirstOp = Request.QueryString("FirstOp")
End If

If (Request.QueryString("SecondOp") <> "") Then 
  SecondOp = Request.QueryString("SecondOp")
End If

%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>

</head>

<body>
<%
Set SelectIII = Server.CreateObject("ADODB.Recordset")
SelectIII.ActiveConnection = MM_acceso_STRING
SelectIII.Source = "SELECT DISTINCT ThirdOp FROM TreeDatosFCR_index WHERE FirstOp = '"& FirstOp &"' and  SecondOp = '"& SecondOp &"' ORDER BY ThirdOp"
SelectIII.CursorType = 1
SelectIII.CursorLocation = 2
SelectIII.LockType = 1
SelectIII.Open()
%>
   	<select id="select_2" name="ThirdOp">
    	<% while NOT SelectIII.EOF %>
     	<option value="<%=SelectIII.Fields("ThirdOp")%>"><%=SelectIII.Fields("ThirdOp")%></option>
	 	<% SelectIII.movenext()
	 	wend %>
	</select>
</body>
</html>