Mostrando entradas con la etiqueta HTML. Mostrar todas las entradas
Mostrando entradas con la etiqueta HTML. Mostrar todas las entradas

martes, 24 de abril de 2018

ComboBox filtrado por otro ComboBox

Es frecuente que necesitemos que al elegir un elemento de una lista desplegable o combo box una segunda lista desplegable o combo box se filtre con datos de acuerdo a la elección tomada en el primer combo box.
En este ejemplo usamos programación con JavaScript usando departamentos y municipios de Guatemala, al elegir un departamento la segunda lista desplegable mostrará los municipios de este departamento, el código completo de la pagina se pone a continuación


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script>
function cargardepartamentos() {
    var array = ["GUATEMALA","EL PROGRESO","SACATEPEQUEZ","CHIMALTENANGO","ESCUINTLA","SANTA ROSA","SOLOLA","TOTONICAPAN","QUETZALTENANGO","SUCHITEPEQUEZ","RETALHULEU","SAN MARCOS","HUEHUETENANGO","QUICHE","BAJA VERAPAZ","ALTA VERAPAZ","PETEN","IZABAL","ZACAPA","CHIQUIMULA","JALAPA","JUTIAPA"];
    array.sort();
    addOptions("departamento", array);
}
//Función para agregar opciones a un <select>.
function addOptions(domElement, array) {
    var selector = document.getElementsByName(domElement)[0];
    for (departamento in array) {
        var opcion = document.createElement("option");
        opcion.text = array[departamento];
        // Añadimos un value a los option para hacer mas facil escoger los municipios
        opcion.value = array[departamento].toLowerCase()
        selector.add(opcion);
    }
}
function cargarmunicipios() {
    // Objeto de departamentos con municipios
    var listamunicipios = {
  guatemala: ["GUATEMALA","SANTA CATARINA PINULA","SAN JOSE PINULA","SAN JOSE DEL GOLFO","PALENCIA","CHINAUTLA","SAN PEDRO AYAMPUC","MIXCO","SAN PEDRO SACATEPEQUEZ","SAN JUAN SACATEPEQUEZ","SAN RAYMUNDO","CHUARRANCHO","FRAIJANES","AMATITLAN","VILLA NUEVA","VILLA CANALES","SAN MIGUEL PETAPA"],
  'el progreso': ["GUASTATOYA","MORAZAN","SAN AGUSTIN ACASAGUASTLAN","SAN CRISTOBAL ACASAGUASTLAN","EL JICARO","SANSARE","SANARATE","SAN ANTONIO LA PAZ"],
  sacatepequez: ["ANTIGUA","JOCOTENANGO","PASTORES","SUMPANGO","SANTO DOMINGO XENACOJ","SANTIAGO SACATEPEQUEZ","SAN BARTOLOME MILPAS ALTAS","SAN LUCAS SACATEPEQUEZ","SANTA LUCIA MILPAS ALTAS","MAGDALENA MILPAS ALTAS","SANTA MARIA DE JESUS","CIUDAD VIEJA","SAN MIGUEL DUENAS","ALOTENANGO","SAN ANTONIO AGUAS CALIENTES","SANTA CATARINA BARAHONA"],
  chimaltenango: ["CHIMALTENANGO","SAN JOSE POAQUIL","SAN MARTIN JILOTEPEQUE","SAN JUAN COMALAPA","SANTA APOLONIA","TECPAN GUATEMALA","PATZUN","SAN MIGUEL POCHUTA","PATZICIA","SANTA CRUZ BALANYA","ACATENANGO","SAN PEDRO YEPOCAPA","SAN ANDRES ITZAPA","PARRAMOS","ZARAGOZA","EL TEJAR"],
  escuintla: ["ESCUINTLA","SANTA LUCIA COTZUMALGUAPA","LA DEMOCRACIA","SIQUINALA","MASAGUA","TIQUISATE","LA GOMERA","GUANAGAZAPA","SAN JOSE","IZTAPA","PALIN","SAN VICENTE PACAYA" ],
  'santa rosa': ["CUILAPA","BARBERENA","SANTA ROSA DE LIMA","CASILLAS","SAN RAFAEL LAS FLORES","ORATORIO","SAN JUAN TECUACO","CHIQUIMULILLA","TAXISCO","SANTA MARIA IXHUATAN","GUAZACAPAN","SANTA CRUZ NARANJO","municipio NUEVO VIÑAS","NUEVA SANTA ROSA"],
  solola: ["SOLOLA","SAN JOSE CHACAYA","SANTA MARIA VISITACION","SANTA LUCIA UTATLAN","NAHUALA","SANTA CATARINA IXTAHUACAN","SANTA CLARA LA LAGUNA","CONCEPCION","SAN ANDRES SEMETABAJ","PANAJACHEL","SANTA CATARINA PALOPO","SAN ANTONIO PALOPO","SAN LUCAS TOLIMAN","SANTA CRUZ LA LAGUNA","SAN PABLO LA LAGUNA","SAN MARCOS LA LAGUNA","SAN JUAN LA LAGUNA","SAN PEDRO LA LAGUNA","SANTIAGO ATITLAN"],
  totonicapan: ["TOTONICAPAN","SAN CRISTOBAL TOTONICAPAN","SAN FRANCISCO EL ALTO","SAN ANDRES XECUL","MOMOSTENANGO","SANTA MARIA CHIQUIMULA","SANTA LUCIA LA REFORMA","SAN BARTOLO AGUAS CALIENTES"],
  quetzaltenango: ["QUETZALTENANGO","SALCAJA","OLINTEPEQUE","SAN CARLOS SIJA","SIBILIA","CABRICAN","CAJOLA","SAN MIGUEL SIGUILA","SAN JUAN OSTUNCALCO","SAN MATEO","CONCEPCION CHIQUIRICHAPA","SAN MARTIN SACATEPEQUEZ","ALMOLONGA","CANTEL","HUITAN","ZUNIL","COLOMBA COSTA CUCA","SAN FRANCISCO LA UNION","EL PALMAR","COATEPEQUE","GENOVA COSTA CUCA","FLORES COSTA CUCA","LA ESPERANZA","PALESTINA DE LOS ALTOS"],
  suchitepequez: ["MAZATENANGO","CUYOTENANGO","SAN FRANCISCO ZAPOTITLAN","SAN BERNARDINO","SAN JOSE EL IDOLO","SANTO DOMINGO SUCHITEPEQUEZ","SAN LORENZO","SAMAYAC","SAN PABLO JOCOPILAS","SAN ANTONIO SUCHITEPEQUEZ","SAN MIGUEL PANAM","SAN GABRIEL","CHICACAO","PATULUL","SANTA BARBARA","SAN JUAN BAUTISTA","SANTO TOMAS LA UNION","ZUNILITO","municipio NUEVO","RIO BRAVO"],
  retalhuleu: ["RETALHULEU","SAN SEBASTIAN","SANTA CRUZ MULUA","SAN MARTIN ZAPOTITLAN","SAN FELIPE","SAN ANDRES VILLA SECA","CHAMPERICO","NUEVO SAN CARLOS","EL ASINTAL"],
  'san marcos': ["SAN MARCOS","SAN PEDRO SACATEPEQUEZ","SAN ANTONIO SACATEPEQUEZ","COMITANCILLO","SAN MIGUEL IXTAHUACAN","CONCEPCION TUTUAPA","TACANA","SIBINAL","TAJUMULCO","TEJUTLA","SAN RAFAEL PIE DE LA CUESTA","NUEVO PROGRESO","EL TUMBADOR","SAN JOSE EL RODEO","MALACATAN","CATARINA","AYUTLA (TECUN UMAN)","OCOS","SAN PABLO","EL QUETZAL","LA REFORMA","PAJAPITA","IXCHIGUAN","SAN JOSE OJETENAN","SAN CRISTOBAL CUCHO","SIPACAPA","ESQUIPULAS PALO GORDO","RIO BLANCO","SAN LORENZO"],
  huehuetenango: ["HUEHUETENANGO","CHIANTLA","MALACATANCITO","CUILCO","NENTON","SAN PEDRO NECTA","JACALTENANGO","SAN PEDRO SOLOMA","SAN ILDEFONSO IXTAHUACAN","SANTA BARBARA","LA LIBERTAD","LA DEMOCRACIA","SAN MIGUEL ACATAN","SAN RAFAEL LA INDEPENDENCIA","TODOS SANTOS CUCHUMATAN","SAN JUAN ATITAN","SANTA EULALIA","SAN MATEO IXTATAN","COLOTENANGO","SAN SEBASTIAN HUEHUETENANGO","TECTITAN","CONCEPCION HUISTA","SAN JUAN IXCOY","SAN ANTONIO HUISTA","SAN SEBASTIAN COATAN","SANTA CRUZ BARILLAS","AGUACATAN","SAN RAFAEL PETZAL","SAN GASPAR IXCHIL","SANTIAGO CHIMALTENANGO","SANTA ANA HUISTA","UNIÓN CANTINIL"],
  quiche: ["SANTA CRUZ DEL QUICHE","CHICHE","CHINIQUE","ZACUALPA","CHAJUL","STO TOMAS CHICHICASTENANGO","PATZITE","SAN ANTONIO ILOTENANGO","SAN PEDRO JOCOPILAS","CUNEN","SAN JUAN COTZAL","JOYABAJ","NEBAJ","SAN ANDRES SAJCABAJA","SAN MIGUEL USPANTAN","SACAPULAS","SAN BARTOLOME JOCOTENANGO","CANILLA","CHICAMAN","IXCAN","PACHALUN","PLAYA GRANDE"],
  'baja verapaz': ["SALAMA","SAN MIGUEL CHICAJ","RABINAL","CUBULCO","GRANADOS","SANTA CRUZ EL CHOL","SAN JERONIMO","PURULHA"],
  'alta verapaz': ["COBAN","SANTA CRUZ VERAPAZ","SAN CRISTOBAL VERAPAZ","TACTIC","TAMAHU","SAN MIGUEL TUCURU","PANZOS","SENAHU","SAN PEDRO CARCHA","SAN JUAN CHAMELCO","LANQUIN","SANTA MARIA CAHABON","CHISEC","CHAHAL","FRAY BARTOLOME DE LAS CASAS","LA TINTA","RAXRUHÁ"],
  peten: ["FLORES","SAN JOSE","SAN BENITO","SAN ANDRES","LA LIBERTAD","SAN FRANCISCO","SANTA ANA","DOLORES","SAN LUIS","SAYAXCHE","MELCHOR DE MENCOS","POPTUN"],
  izabal: ["PUERTO BARRIOS","LIVINGSTON","EL ESTOR","MORALES","LOS AMATES"],
  zacapa: ["ZACAPA","ESTANZUELA","RIO HONDO","GUALAN","TECULUTAN","USUMATLAN","CABANAS","SAN DIEGO","LA UNION","HUITE"],
  chiquimula: ["CHIQUIMULA","SAN JOSE LA ARADA","SAN JUAN LA ERMITA","JOCOTAN","CAMOTAN","OLOPA","ESQUIPULAS","CONCEPCION LAS MINAS","QUEZALTEPEQUE","SAN JACINTO","IPALA"],
  jalapa: ["JALAPA","SAN PEDRO PINULA","SAN LUIS JILOTEPEQUE","SAN MANUEL CHAPARRON","SAN CARLOS ALZATATE","MONJAS","MATAQUESCUINTLA"],
  jutiapa: ["JUTIAPA","EL PROGRESO","SANTA CATARINA MITA","AGUA BLANCA","ASUNCION MITA","YUPILTEPEQUE","ATESCATEMPA","JEREZ","EL ADELANTO","ZAPOTITLAN","COMAPA","JALPATAGUA","CONGUACO","MOYUTA","PASACO","SAN JOSE ACATEMPA","QUESADA"]
    }
   
    var departamentos = document.getElementById('departamento')
    var municipios = document.getElementById('municipio')
    var departamentoSeleccionada = departamentos.value
   
    // Se limpian los municipios
    municipios.innerHTML = '<option value="">SELECCIONE UN MUNICIPIO...</option>'
   
    if(departamentoSeleccionada !== ''){
      // Se seleccionan los municipios y se ordenan
      departamentoSeleccionada = listamunicipios[departamentoSeleccionada]
      departamentoSeleccionada.sort()
   
      // Insertamos los municipios
      departamentoSeleccionada.forEach(function(municipio){
        opcion = document.createElement('option')
        opcion.value = municipio
        opcion.text = municipio
        municipios.add(opcion)
      });
    }
   
  }
 
 // Iniciar la carga de departamentos solo para comprobar que funciona
</script>
</head>
<body onload="cargardepartamentos();">
<table>
   <tr>
      <td align=right>departamento:</td>
      <td align=left colspan=3>
          <!-- Añadido onchange para cargar los municipios -->
          <select name="departamento" id="departamento" onchange="cargarmunicipios();" class="form-control">
              <option value="">SELECCIONE UN DEPARTAMENTO...</option>
          </select>
      </td>
  </tr>
  <tr>                   
      <td align=right>municipio:</td>
      <td align=left colspan=3>
          <select name="municipio" id="municipio" class="form-control">
              <option value="">SELECCIONE UN MUNICIPIO...</option>
          </select>
      </td>
  </tr>
</table>
</body>
</html>

sábado, 28 de julio de 2012

Codigo HTML Para Una Lista Desplegable con los Paises del Mundo


A veces se necesita un formulario en una página web, con una lista desplegable con los países del mundo, aquí el script HTML.

<select name="pais">
<option value="AF">Afganistán</option>
<option value="AL">Albania</option>
<option value="DE">Alemania</option>
<option value="AD">Andorra</option>
<option value="AO">Angola</option>
<option value="AI">Anguilla</option>
<option value="AQ">Antártida</option>
<option value="AG">Antigua y Barbuda</option>
<option value="AN">Antillas Holandesas</option>
<option value="SA">Arabia Saudí</option>
<option value="DZ">Argelia</option>
<option value="AR">Argentina</option>
<option value="AM">Armenia</option>
<option value="AW">Aruba</option>
<option value="AU">Australia</option>
<option value="AT">Austria</option>
<option value="AZ">Azerbaiyán</option>
<option value="BS">Bahamas</option>
<option value="BH">Bahrein</option>
<option value="BD">Bangladesh</option>
<option value="BB">Barbados</option>
<option value="BE">Bélgica</option>
<option value="BZ">Belice</option>
<option value="BJ">Benin</option>
<option value="BM">Bermudas</option>
<option value="BY">Bielorrusia</option>
<option value="MM">Birmania</option>
<option value="BO">Bolivia</option>
<option value="BA">Bosnia y Herzegovina</option>
<option value="BW">Botswana</option>
<option value="BR">Brasil</option>
<option value="BN">Brunei</option>
<option value="BG">Bulgaria</option>
<option value="BF">Burkina Faso</option>
<option value="BI">Burundi</option>
<option value="BT">Bután</option>
<option value="CV">Cabo Verde</option>
<option value="KH">Camboya</option>
<option value="CM">Camerún</option>
<option value="CA">Canadá</option>
<option value="TD">Chad</option>
<option value="CL">Chile</option>
<option value="CN">China</option>
<option value="CY">Chipre</option>
<option value="VA">Ciudad del Vaticano (Santa Sede)</option>
<option value="CO">Colombia</option>
<option value="KM">Comores</option>
<option value="CG">Congo</option>
<option value="CD">Congo, República Democrática del</option>
<option value="KR">Corea</option>
<option value="KP">Corea del Norte</option>
<option value="CI">Costa de Marfíl</option>
<option value="CR">Costa Rica</option>
<option value="HR">Croacia (Hrvatska)</option>
<option value="CU">Cuba</option>
<option value="DK">Dinamarca</option>
<option value="DJ">Djibouti</option>
<option value="DM">Dominica</option>
<option value="EC">Ecuador</option>
<option value="EG">Egipto</option>
<option value="SV">El Salvador</option>
<option value="AE">Emiratos Árabes Unidos</option>
<option value="ER">Eritrea</option>
<option value="SI">Eslovenia</option>
<option value="ES" selected>España</option>
<option value="US">Estados Unidos</option>
<option value="EE">Estonia</option>
<option value="ET">Etiopía</option>
<option value="FJ">Fiji</option>
<option value="PH">Filipinas</option>
<option value="FI">Finlandia</option>
<option value="FR">Francia</option>
<option value="GA">Gabón</option>
<option value="GM">Gambia</option>
<option value="GE">Georgia</option>
<option value="GH">Ghana</option>
<option value="GI">Gibraltar</option>
<option value="GD">Granada</option>
<option value="GR">Grecia</option>
<option value="GL">Groenlandia</option>
<option value="GP">Guadalupe</option>
<option value="GU">Guam</option>
<option value="GT">Guatemala</option>
<option value="GY">Guayana</option>
<option value="GF">Guayana Francesa</option>
<option value="GN">Guinea</option>
<option value="GQ">Guinea Ecuatorial</option>
<option value="GW">Guinea-Bissau</option>
<option value="HT">Haití</option>
<option value="HN">Honduras</option>
<option value="HU">Hungría</option>
<option value="IN">India</option>
<option value="ID">Indonesia</option>
<option value="IQ">Irak</option>
<option value="IR">Irán</option>
<option value="IE">Irlanda</option>
<option value="BV">Isla Bouvet</option>
<option value="CX">Isla de Christmas</option>
<option value="IS">Islandia</option>
<option value="KY">Islas Caimán</option>
<option value="CK">Islas Cook</option>
<option value="CC">Islas de Cocos o Keeling</option>
<option value="FO">Islas Faroe</option>
<option value="HM">Islas Heard y McDonald</option>
<option value="FK">Islas Malvinas</option>
<option value="MP">Islas Marianas del Norte</option>
<option value="MH">Islas Marshall</option>
<option value="UM">Islas menores de Estados Unidos</option>
<option value="PW">Islas Palau</option>
<option value="SB">Islas Salomón</option>
<option value="SJ">Islas Svalbard y Jan Mayen</option>
<option value="TK">Islas Tokelau</option>
<option value="TC">Islas Turks y Caicos</option>
<option value="VI">Islas Vírgenes (EEUU)</option>
<option value="VG">Islas Vírgenes (Reino Unido)</option>
<option value="WF">Islas Wallis y Futuna</option>
<option value="IL">Israel</option>
<option value="IT">Italia</option>
<option value="JM">Jamaica</option>
<option value="JP">Japón</option>
<option value="JO">Jordania</option>
<option value="KZ">Kazajistán</option>
<option value="KE">Kenia</option>
<option value="KG">Kirguizistán</option>
<option value="KI">Kiribati</option>
<option value="KW">Kuwait</option>
<option value="LA">Laos</option>
<option value="LS">Lesotho</option>
<option value="LV">Letonia</option>
<option value="LB">Líbano</option>
<option value="LR">Liberia</option>
<option value="LY">Libia</option>
<option value="LI">Liechtenstein</option>
<option value="LT">Lituania</option>
<option value="LU">Luxemburgo</option>
<option value="MK">Macedonia, Ex-República Yugoslava de</option>
<option value="MG">Madagascar</option>
<option value="MY">Malasia</option>
<option value="MW">Malawi</option>
<option value="MV">Maldivas</option>
<option value="ML">Malí</option>
<option value="MT">Malta</option>
<option value="MA">Marruecos</option>
<option value="MQ">Martinica</option>
<option value="MU">Mauricio</option>
<option value="MR">Mauritania</option>
<option value="YT">Mayotte</option>
<option value="MX">México</option>
<option value="FM">Micronesia</option>
<option value="MD">Moldavia</option>
<option value="MC">Mónaco</option>
<option value="MN">Mongolia</option>
<option value="MS">Montserrat</option>
<option value="MZ">Mozambique</option>
<option value="NA">Namibia</option>
<option value="NR">Nauru</option>
<option value="NP">Nepal</option>
<option value="NI">Nicaragua</option>
<option value="NE">Níger</option>
<option value="NG">Nigeria</option>
<option value="NU">Niue</option>
<option value="NF">Norfolk</option>
<option value="NO">Noruega</option>
<option value="NC">Nueva Caledonia</option>
<option value="NZ">Nueva Zelanda</option>
<option value="OM">Omán</option>
<option value="NL">Países Bajos</option>
<option value="PA">Panamá</option>
<option value="PG">Papúa Nueva Guinea</option>
<option value="PK">Paquistán</option>
<option value="PY">Paraguay</option>
<option value="PE">Perú</option>
<option value="PN">Pitcairn</option>
<option value="PF">Polinesia Francesa</option>
<option value="PL">Polonia</option>
<option value="PT">Portugal</option>
<option value="PR">Puerto Rico</option>
<option value="QA">Qatar</option>
<option value="UK">Reino Unido</option>
<option value="CF">República Centroafricana</option>
<option value="CZ">República Checa</option>
<option value="ZA">República de Sudáfrica</option>
<option value="DO">República Dominicana</option>
<option value="SK">República Eslovaca</option>
<option value="RE">Reunión</option>
<option value="RW">Ruanda</option>
<option value="RO">Rumania</option>
<option value="RU">Rusia</option>
<option value="EH">Sahara Occidental</option>
<option value="KN">Saint Kitts y Nevis</option>
<option value="WS">Samoa</option>
<option value="AS">Samoa Americana</option>
<option value="SM">San Marino</option>
<option value="VC">San Vicente y Granadinas</option>
<option value="SH">Santa Helena</option>
<option value="LC">Santa Lucía</option>
<option value="ST">Santo Tomé y Príncipe</option>
<option value="SN">Senegal</option>
<option value="SC">Seychelles</option>
<option value="SL">Sierra Leona</option>
<option value="SG">Singapur</option>
<option value="SY">Siria</option>
<option value="SO">Somalia</option>
<option value="LK">Sri Lanka</option>
<option value="PM">St Pierre y Miquelon</option>
<option value="SZ">Suazilandia</option>
<option value="SD">Sudán</option>
<option value="SE">Suecia</option>
<option value="CH">Suiza</option>
<option value="SR">Surinam</option>
<option value="TH">Tailandia</option>
<option value="TW">Taiwán</option>
<option value="TZ">Tanzania</option>
<option value="TJ">Tayikistán</option>
<option value="TF">Territorios franceses del Sur</option>
<option value="TP">Timor Oriental</option>
<option value="TG">Togo</option>
<option value="TO">Tonga</option>
<option value="TT">Trinidad y Tobago</option>
<option value="TN">Túnez</option>
<option value="TM">Turkmenistán</option>
<option value="TR">Turquía</option>
<option value="TV">Tuvalu</option>
<option value="UA">Ucrania</option>
<option value="UG">Uganda</option>
<option value="UY">Uruguay</option>
<option value="UZ">Uzbekistán</option>
<option value="VU">Vanuatu</option>
<option value="VE">Venezuela</option>
<option value="VN">Vietnam</option>
<option value="YE">Yemen</option>
<option value="YU">Yugoslavia</option>
<option value="ZM">Zambia</option>
<option value="ZW">Zimbabue</option>
</select>