Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   Select deriva Otro Select o Radio (http://www.forosdelweb.com/f127/select-deriva-otro-select-radio-517297/)

jahman 06/09/2007 10:54

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 %>


jahman 06/09/2007 11:59

Re: Select deriva Otro Select o Radio
 
En fin ya lo solucione...
Gracias........

nilram 08/02/2008 10:24

Re: Select deriva Otro Select o Radio
 
hola q tal como estas?
estaba viendo tu sita q consegui mientras buscaba como solucionar mi problema
resulta q tengo el mismo problema q tenias tu con los selects anidados, de verdad que ya no se que hacer para solventarlo
este es mi codigo

function createRequest(){
var xmlhttp=false;
if(window.XMLHttpRequest){ // Mozilla, Safari,...
xmlhttp = new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType('text/xml');
}
}else if(window.ActiveXObject){ // IE
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
return xmlhttp;
}



function callback_aplicacion() {
var xmlhttp = createRequest();
if(!xmlhttp){
alert("No consegui el objeto XMLHttpObject");

}else{

Loadgif="Oficina <img src=\"imagenes/loader.gif\">";
document.getElementById("loader").innerHTML=Loadgi f;
var idEdo=document.getElementById("cmbEstado").value;
var url = "AjaxOficinaCTRL?idEdo=" + escape(idEdo);
xmlhttp.open("GET", url, true);
xmlhttp.onreadystatechange= function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var oficina = xmlhttp.responseXML.getElementsByTagName("oficina" );
lista="<select name=\"cmbOficina\" id=\"cmbOficina\" style=\"width:330px;\" >";
lista+="<option value=\"0\" selected=\"selected\">Seleccione</option>";
for(i=0;i<oficina.length;i++){ //.attributes[0].nodeValue
lista+=" <option value=\""+oficina[i].attributes[0].nodeValue+"\">"+oficina[i].childNodes[0].nodeValue+"</option>";
}
lista+="</select>";

document.getElementById("lista").innerHTML=lista;
Loadgif="Oficina";
document.getElementById("loader").innerHTML=Loadgi f;
}
}; // fin del function
xmlhttp.send(null);
} //fin del else

}// fin de la funcion callback_aplicacion

me dice que el objeto no acepta esta propiedad o metodo y se para en el momento q llama a la funcion
xmlhttp.onreadystatechange= function()
y se queda cragado el segundo select pero no termina :'( en mozilla me funciona perfecto pero necesito que funcione en IE, no se si es algo de configuracion del explorador o es otra cosa
porfa si me puedes ayudar o cualquiera me puede ayudar se lo agradezco :-)


La zona horaria es GMT -6. Ahora son las 06:25.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.