Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2007, 10:54
Avatar de jahman
jahman
 
Fecha de Ingreso: noviembre-2003
Ubicación: Oslo
Mensajes: 230
Antigüedad: 21 años, 1 mes
Puntos: 0
Select deriva Otro Select o Radio

Que tal bueno como dice el titulo estoy tratando de que apartir de un slect me deribe una dependiente pero que dependiendo de lo que selecciono me devolvera otro select o radio, me muestra los datos y hace lo que quiero el problema es que me mando un error

" El Objeto no acepta esta propiedad o metodo "

pero igual me hace el trabajo, aqui esta el codigo...ojla me puedan ayudar y orientarme. Gracias.

Código HTML:
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", "CampoII.asp?CampoI="+valor, true); 
			ajax.onreadystatechange=function()	{ 
				if (valor != "Capacitacion" ) {
					if (ajax.readyState==1)  { 
					// Mientras carga elimino la opcion pongo una que dice "Cargando" 
						combo=0; 
						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; 
					}	
				}
				else{
					if (ajax.readyState==1)  { 
					// Mientras carga elimino la opcion pongo una que dice "Cargando" 
						combo=0; 
						combo.length=0; 
						var nuevaOpcion=document.createElement("radio"); 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); 		
   		} 	
} 
<body>
		<tr>
			<td  bgcolor="#FFCC00" class="txContenido"><strong>MotivoI</strong></td>
			<td id="fila_1">
			<select name="CampoI"  id="select_0"  onChange="cargaContenido()" class="txContenido">
				<option>-- Select --</option>
				<%
				Set SelectI = Server.CreateObject("ADODB.Recordset")
				SelectI.ActiveConnection = MM_acceso_STRING
				SelectI.Source = "SELECT DISTINCT CampoI FROM FeedbackArbol order by CampoI "
				SelectI.CursorType = 1
				SelectI.CursorLocation = 2
				SelectI.LockType = 1
				SelectI.Open()
				while NOT SelectI.EOF %>
					<option value="<%=SelectI.Fields("CampoI")%>"><%=SelectI.Fields("CampoI")%></option>
				<% SelectI.movenext()
				Wend%>
			</select>
			</td>
		</tr>
	<tr>
		<td bgcolor="#FFCC00" class="txContenido"><strong>MotivoII</strong></td>
   		<td id="fila_2">
		</td> 
  	</tr>
</body> 

Result.asp
Código HTML:
<%
If (Request.QueryString("CampoI") <> "") Then 
  CampoI = Request.QueryString("CampoI")
End If

%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<link href="../CSS/contenidos.css" rel="stylesheet" type="text/css">
</head>
<body>
<%
Set SelectII = Server.CreateObject("ADODB.Recordset")
SelectII.ActiveConnection = MM_acceso_STRING
SelectII.Source="SELECT DISTINCT CampoII FROM FeedbackArbol WHERe CampoI ='"& CampoI &"' ORDER BY CampoII"
SelectII.CursorType = 1
SelectII.CursorLocation = 2
SelectII.LockType = 1
SelectII.Open()
%>
<% IF CampoI <> "Capacitacion" THEN %>
   	<select id="select_1" name="CampoII" class="txContenido">
		<option>-- Select --</option>
    	<% while NOT SelectII.EOF %>
     	<option value="<%=SelectII.Fields("CampoII")%>"><%=SelectII.Fields("CampoII")%></option>
	 	<% SelectII.movenext()
	 	wend %>
	</select>
<% ELSE %>
	<input type="radio" id="select_1" name="CampoII">asd
<% END IF %>