Programación Web y Scripting > HTML

 Llenar Combobox Dinámico

(1/1)

RadicalEd:
Hola chicos de SoloCodigo, necesito arreglar un problema.

Lo que pasa es que en una aplicacion donde se pide al usuario que seleccione un dato a través de un combobox1 y según sea la opción se debe llenar un combobox2 con las sub_opciones de esa opción, algo así como cuando uno llena el País en el Hotmail y aparecen los estados de dicho País.

Me pueden dar una ayuda o un enlace con info al respecto.

Me la imagino por medio de JavaScript, pero es que soy un poquito malo para este, y pues no quiero hacerlo por php ya que me tocaria modificar una tabla con unos datos que ya existen y blablablabla.

Gracias Chao.

RadicalEd:
Lo resolví así y me sirvio full, lo encontre en forosdelweb:
<!--html--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>HTML </td></tr><tr><td id='CODE'><!--html1--><html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" src="reloj.js"></script>
<script language="JavaScript">
<!--
   function addOpt(oCntrl, iPos, sTxt, sVal){
     var selOpcion=new Option(sTxt, sVal);
     eval(oCntrl.options[iPos]=selOpcion);
   }

   function cambia(oCntrl)
   {
    while (oCntrl.length) oCntrl.remove(0);
    switch (document.form1.algo.selectedIndex)
   {
     case 0:
      addOpt(oCntrl,  0, "Clientes de Televentas", "0");
      addOpt(oCntrl,  1, "Clientes de Ejecutivos", "1");
     addOpt(oCntrl,  2, "Clientes de Oficina", "2");
     addOpt(oCntrl,  3, "Clientes Nuevos", "3");
      break;
     case 1:
      addOpt(oCntrl,  0, "Clientes de Televentas", "0");
      addOpt(oCntrl,  1, "Clientes de Ejecutivos", "1");
     addOpt(oCntrl,  2, "Clientes de Oficina", "2");
     addOpt(oCntrl,  3, "Clientes Nuevos", "3");
      break;
     case 2:
      addOpt(oCntrl,  0, "Clientes de Televentas", "0");
      addOpt(oCntrl,  1, "Clientes de Ejecutivos", "1");
     addOpt(oCntrl,  2, "Clientes de Oficina", "2");
      break;
     case 3:
      addOpt(oCntrl,  0, "Cobros", "0");
      addOpt(oCntrl,  1, "Operacion de Cartera Propios", "1");
      addOpt(oCntrl,  2, "Operacion de Cartera Pjecutivos", "2");
      addOpt(oCntrl,  3, "Operacion de Cartera Oficina", "3");
      break;
     case 4:
      addOpt(oCntrl,  0, "Clientes de Televentas", "0");
      addOpt(oCntrl,  1, "Clientes de Ejecutivos", "1");
     addOpt(oCntrl,  2, "Clientes de Oficina", "2");
      break;
     case 5:
      addOpt(oCntrl,  0, "Clientes de Televentas", "0");
      addOpt(oCntrl,  1, "Clientes de Ejecutivos", "1");
     addOpt(oCntrl,  2, "Clientes de Oficina", "2");
      break;
     case 6:
      addOpt(oCntrl,  0, "Clientes de Televentas", "0");
      addOpt(oCntrl,  1, "Clientes de Ejecutivos", "1");
     addOpt(oCntrl,  2, "Clientes de Oficina", "2");
      break;
     case 7:
      addOpt(oCntrl,  0, "Baño", "0");
      addOpt(oCntrl,  1, "Almuerzo", "1");
     addOpt(oCntrl,  2, "Entredía", "2");
      addOpt(oCntrl,  3, "Llamadas personales", "3");
     addOpt(oCntrl,  4, "Diligencia personal", "4");
      break;
     case 8:
      addOpt(oCntrl,  0, "Adecuación puesto de trabajo", "0");
      addOpt(oCntrl,  1, "Elaboración de informes", "1");
     addOpt(oCntrl,  2, "Presentación de informes", "2");
      addOpt(oCntrl,  3, "Reuniones", "3");
      break;
     case 6:
      addOpt(oCntrl,  0, "En la Oficina", "0");
      addOpt(oCntrl,  1, "Fuera de la Oficina", "1");
     addOpt(oCntrl,  2, "Clientes de Oficina", "2");
      break;
    }
   }
//-->
</script>
</head>
<body>
<br><br><br><br><br><br><br>
<center>
<form name="form1" method="get" action="grabar.php">
    <SELECT NAME='algo' onChange="cambia(document.form1.opcion)">
      <OPTION VALUE=1>Cotizaciones
      <OPTION VALUE=2>Información Técnica
      <OPTION VALUE=3>Información Sobre Pedidos
      <OPTION VALUE=4>Cartera
      <OPTION VALUE=5>Logística
      <OPTION VALUE=6>Compras
      <OPTION VALUE=7>Pedidos
      <OPTION VALUE=8>Personales
      <OPTION VALUE=9>Labores Operativas
      <OPTION VALUE=10>Atención Personal a Clientes
    </SELECT>
    <select name="opcion">
      <option selected>Clientes de Televentas</option>
      <option>Clientes Ejecutivos</option>
      <option>Clientes de Oficina</option>
    </select>
    <br><br>
    <SELECT NAME='nombre'>
      <OPTION VALUE='Mayerli'>Mayerly
      <OPTION VALUE='Alex'>Alex
    </SELECT>
    <input type=hidden name="horas" size="8" value="<?php echo $hora; ?>">   
    <input type=hidden name="fechas" size="8" value="<?php echo $fecha; ?>">   
   <br><br>
    <input type="submit" name="Submit" value="Fin">
</form></center>
</body>
</html><!--html2--></td></tr></table><div class='postcolor'><!--html3-->

Mollense:
Gracias viejo, está muy buena la function!!!  :beer:

Bicholey:
:lol:  :lol:  :lol:  :lol:


Perfecto hoy me habia metido al foro para preguntar algo similar y ohh mi god la respuesta sin ni siquiera preguntarla.

LeGatoRojo:

--- Código: Text ---&#60;select name=&#34;pais_l&#34; onchange=&#34;makeRequest('comboEstado','../inc/arrest.php?pa='+this.value);&#34;&#62; function makeRequest(campo,url){      http_request = false;            if(window.XMLHttpRequest){ // mozilla, netscape, opera...        http_request = new XMLHttpRequest();        if(http_request.overrideMimeType){          http_request.overrideMimeType('text/xml');        }      }else if(window.ActiveXObject){ // IE        try{          http_request = new ActiveXObject(&#34;Msxml2.XMLHTTP&#34;);        }catch(e){          try{            http_request = new ActiveXObject(&#34;Microsoft.XMLHTTP&#34;);          }catch(e){          }        }      }      if(!http_request){        alert('Falla :( No es posible crear una instancia XMLHTTP');        return false;      }      if(campo == 'comboEstado')        http_request.onreadystatechange = comboEstado;      if(campo == 'comboEstado1')        http_request.onreadystatechange = comboEstado1;        http_request.open('GET', url, true);      http_request.send(null);    }        function comboEstado(){      if(http_request.readyState == 4){        if(http_request.status == 200){          var opciones=http_request.responseText.split('|');          document.forms.form1.estado_l.options.length=0;          for(var i=0; i&#60;opciones.length; i++){            var par=opciones[i].split('#');            document.forms.form1.estado_l.options[i]=new Option(par[1],par[0]);          }          document.forms.form1.estado_l.options.length--;        }else{          alert('Hubo problemas con la petición.');        }      }    }      



Yo ocupo esto, claro tambien ocupo algo de php y una bd

Navegación

[0] Índice de Mensajes

Ir a la versión completa