Foros del Web » Programando para Internet » Javascript »

3 Combo Box anidados

Estas en el tema de 3 Combo Box anidados en el foro de Javascript en Foros del Web. Hola amigos, realmente me inicio en el foro (ý en todos creo!) y en el mundo de Javascript y es por esto que pido ayuda ...
  #1 (permalink)  
Antiguo 16/08/2011, 17:38
 
Fecha de Ingreso: agosto-2011
Ubicación: LIma
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta 3 Combo Box anidados

Hola amigos, realmente me inicio en el foro (ý en todos creo!) y en el mundo de Javascript y es por esto que pido ayuda en lo siguiente: me dieron el código a continuación que me genera 3 combo box anidados que gestiona la selección de la región, provincia y distrito para mi país, Perú, pero me devuelve siempre el ubigeo o código de ubicación que se encuentra a la izquierda del símbolo & de cada arreglo (región, provincia y distrito) y la verdad se necesita que devuelva el nombre que se encuentra a la derecha del mismo símbolo &.

Ojalá alguien pueda ayudarme que realmente lo agradecería (El arreglo P y D los he reducido para cumplir los límites del foro).

Saludos!
Jorge Landa

var De = new Array();
var P = new Array();
var D = new Array();
//- department
De[1]="001&AMAZONAS"
De[2]="002&ANCASH"
De[3]="003&APURIMAC"
De[4]="004&AREQUIPA"
De[5]="005&AYACUCHO"
De[6]="006&CAJAMARCA"
De[7]="007&CALLAO"
De[8]="008&CUSCO"
De[9]="009&HUANCAVELICA"
De[10]="010&HUANUCO"
De[11]="011&ICA"
De[12]="012&JUNIN"
De[13]="013&LA LIBERTAD"
De[14]="014&LAMBAYEQUE"
De[15]="015&LIMA"
De[16]="016&LORETO"
De[17]="017&MADRE DE DIOS"
De[18]="018&MOQUEGUA"
De[19]="019&PASCO"
De[20]="020&PIURA"
De[21]="021&PUNO"
De[22]="022&SAN MARTIN"
De[23]="023&TACNA"
De[24]="024&TUMBES"
De[25]="025&UCAYALI"
De[26]="026&EXTRANJERO"
De[27]="027&OTROS"
De[28]="000&NINGUNO"

//- Province
P[1]="001001&CHACHAPOYAS"
P[2]="001002&BAGUA"
P[3]="001003&BONGARA"
P[4]="001004&CONDORCANQUI"
P[5]="001005&LUYA"
P[6]="001006&RODRIGUEZ DE MENDOZA"
P[7]="001007&UTCUBAMBA"
P[8]="002001&HUARAZ"
P[9]="002002&AIJA"
P[10]="002003&ANTONIO RAYMONDI"
P[11]="002004&ASUNCION"
P[12]="002005&BOLOGNESI"
P[13]="002006&CARHUAZ"
P[14]="002007&CARLOS FERMIN FITZCARRALD"
P[15]="002008&CASMA"
P[16]="002009&CORONGO"
P[17]="002010&HUARI"
P[18]="002011&HUARMEY"
P[19]="002012&HUAYLAS"
P[20]="002013&MARISCAL LUZURIAGA"
P[21]="002014&OCROS"
P[22]="002015&PALLASCA"
P[23]="002016&POMABAMBA"
P[24]="002017&RECUAY"
P[25]="002018&SANTA"
P[26]="002019&SIHUAS"
P[27]="002020&YUNGAY"
P[28]="003001&ABANCAY"
P[29]="003002&ANDAHUAYLAS"
P[30]="003003&ANTABAMBA"
P[31]="003004&AYMARAES"
P[32]="003005&COTABAMBAS"
P[33]="003006&CHINCHEROS"
P[34]="003007&GRAU"
P[35]="004001&AREQUIPA"
P[36]="004002&CAMANA"
P[37]="004003&CARAVELI"
P[38]="004004&CASTILLA"
P[39]="004005&CAYLLOMA"
P[40]="004006&CONDESUYOS"
P[41]="004007&ISLAY"
P[42]="004008&LA UNION"
P[43]="005001&HUAMANGA"
P[44]="005002&CANGALLO"
P[45]="005003&HUANCA SANCOS"
P[46]="005004&HUANTA"
P[47]="005005&LA MAR"
P[48]="005006&LUCANAS"
P[49]="005007&PARINACOCHAS"
P[50]="005008&PAUCAR DEL SARA SARA"
P[51]="005009&SUCRE"
P[52]="005010&VICTOR FAJARDO"
P[53]="005011&VILCAS HUAMAN"
P[54]="006001&CAJAMARCA"
P[55]="006002&CAJABAMBA"
P[56]="006003&CELENDIN"
P[57]="006004&CHOTA"
P[58]="006005&CONTUMAZA"
P[59]="006006&CUTERVO"
P[60]="006007&HUALGAYOC"
P[61]="006008&JAEN"
P[62]="006009&SAN IGNACIO"
P[63]="006010&SAN MARCOS"
P[64]="006011&SAN MIGUEL"
P[65]="006012&SAN PABLO"
P[66]="006013&SANTA CRUZ"
P[67]="007001&CALLAO"
P[68]="008001&CUSCO"
P[69]="008002&ACOMAYO"
P[70]="008003&ANTA"
P[71]="008004&CALCA"
P[72]="008005&CANAS"
P[73]="008006&CANCHIS"
P[74]="008007&CHUMBIVILCAS"
P[75]="008008&ESPINAR"
P[76]="008009&LA CONVENCION"
P[77]="008010&PARURO"
P[78]="008011&PAUCARTAMBO"
P[79]="008012&QUISPICANCHI"
P[80]="008013&URUBAMBA"
P[81]="009001&HUANCAVELICA"
P[82]="009002&ACOBAMBA"
P[83]="009003&ANGARAES"
P[84]="009004&CASTROVIRREYNA"
P[85]="009005&CHURCAMPA"
P[86]="009006&HUAYTARA"
P[87]="009007&TAYACAJA"
P[88]="010001&HUANUCO"
P[89]="010002&AMBO"
P[90]="010003&DOS DE MAYO"
P[91]="010004&HUACAYBAMBA"
P[92]="010005&HUAMALIES"
P[93]="010006&LEONCIO PRADO"
P[94]="010007&MARAÑON"
P[95]="010008&PACHITEA"
P[96]="010009&PUERTO INCA"
P[97]="010010&LAURICOCHA"
P[98]="010011&YAROWILCA"
P[99]="011001&ICA"
P[100]="011002&CHINCHA"
P[101]="011003&NAZCA"
P[102]="011004&PALPA"
P[103]="011005&PISCO"
P[104]="012001&HUANCAYO"
P[105]="012002&CONCEPCION"
P[106]="012003&CHANCHAMAYO"
P[107]="012004&JAUJA"
P[108]="012005&JUNIN"
P[109]="012006&SATIPO"
P[110]="012007&TARMA"
P[111]="012008&YAULI"
P[112]="012009&CHUPACA"
P[113]="013001&TRUJILLO"
P[114]="013002&ASCOPE"
P[115]="013003&BOLIVAR"
P[116]="013004&CHEPEN"
P[117]="013005&JULCAN"
P[118]="013006&OTUZCO"
P[119]="013007&PACASMAYO"
P[120]="013008&PATAZ"
P[121]="013009&SANCHEZ CARRION"
P[122]="013010&SANTIAGO DE CHUCO"
P[123]="013011&GRAN CHIMU"
P[124]="013012&VIRU"
P[125]="014001&CHICLAYO"
P[126]="014002&FERREÑAFE"
P[127]="014003&LAMBAYEQUE"
P[128]="015001&LIMA"
P[129]="015002&BARRANCA"
P[130]="015003&CAJATAMBO"
P[131]="015004&CANTA"
P[132]="015005&CAÑETE"
P[133]="015006&HUARAL"
P[134]="015007&HUAROCHIRI"
P[135]="015008&HUAURA"
P[136]="015009&OYON"
P[137]="015010&YAUYOS"
P[138]="016001&MAYNAS"
P[139]="016002&ALTO AMAZONAS"
P[140]="016003&LORETO"
P[141]="016004&MARISCAL RAMON CASTILLA"
P[142]="016005&REQUENA"
P[143]="016006&UCAYALI"
P[144]="017001&TAMBOPATA"
P[145]="017002&MANU"
P[146]="017003&TAHUAMANU"
P[147]="018001&MARISCAL NIETO"
P[148]="018002&GENERAL SANCHEZ CERRO"
P[149]="018003&ILO"
P[150]="019001&PASCO"
P[151]="019002&DANIEL ALCIDES CARRION"
P[152]="019003&OXAPAMPA"
P[153]="020001&PIURA"
P[154]="020002&AYABACA"
P[155]="020003&HUANCABAMBA"
P[156]="020004&MORROPON"
P[157]="020005&PAITA"
P[158]="020006&SULLANA"
P[159]="020007&TALARA"
P[160]="020008&SECHURA"
P[161]="021001&PUNO"
P[162]="021002&AZANGARO"
P[163]="021003&CARABAYA"
P[164]="021004&CHUCUITO"
P[165]="021005&EL COLLAO"
P[166]="021006&HUANCANE"
P[167]="021007&LAMPA"
P[168]="021008&MELGAR"
P[169]="021009&MOHO"
P[170]="021010&SAN ANTONIO DE PUTINA"
P[171]="021011&SAN ROMAN"
P[172]="021012&SANDIA"

D[1]="001001001&CHACHAPOYAS"
D[2]="001001006&CHUQUIBAMBA"
D[3]="001001009&LA JALCA"
D[4]="001001010&LEIMEBAMBA"
D[5]="001001012&MAGDALENA"
D[6]="001001013&MARISCAL CASTILLA"
D[7]="001001015&MONTEVIDEO"
D[8]="001001020&SOLOCO"
D[9]="001002002&ARAMANGO"
D[10]="001002003&COPALLIN"
D[11]="001002004&EL PARCO"
D[12]="001002005&IMAZA"
D[13]="001003001&JUMBILLA"
D[14]="001003006&FLORIDA"
D[15]="001003007&JAZAN"
D[16]="001003012&YAMBRASBAMBA"
D[17]="001004001&NIEVA"

function MID(cad,pos,can)
{ var cadena="",finalz=0;
finalz = ((pos+can-1)>cad.length) ? cad.length : pos+can-1;
for(var i=pos;
i<=finalz;
cadena+=cad.substring(i,i+1),i++);
//alert (cadena);
return cadena; // es el departamento
}

function carga(objini,objmatriz)
{ var objeto,objref;
objini.options.length = objmatriz.length;
objref = objini.options;
for(var i=1; i < objmatriz.length; i++)
{ objref[i].value = objmatriz[i].substring(0, objmatriz[i].indexOf('&'));
objref[i].text = objmatriz[i].substring( objmatriz[i].indexOf('&')+1, objmatriz[i].length);
}
//objini.selectedIndex = 0;
objini.selectedIndex = 1;
}

function pasamela(cm,numeros)
{ var objref;
var ALugar = new Array();
var longitud=0
var item=1
var is_Otro;

if (numeros==1){
lugar="department"
ALugar = P;
lugardest="province"
document.formulario1.district.options.selectedInde x = 0;

is_Otro = eval("document.formulario1."+lugar+".options[document.formulario1."+lugar+".selectedIndex].value")

objref = eval("document.formulario1."+lugardest+".options")

for(var i=1; i < ALugar.length; longitud +=(MID(ALugar[i].substring(0, ALugar[i].indexOf('&')),0,3) == cm) ? 1 : 0, i++);
objref.length = longitud+1;

for(var i=1; i < ALugar.length; i++)
{
if (MID(ALugar[i].substring(0, ALugar[i].indexOf('&')),0,3) == cm)
{ objref[item].value = ALugar[i].substring(0, ALugar[i].indexOf('&'));
objref[item++].text = ALugar[i].substring( ALugar[i].indexOf('&')+1, ALugar[i].length);
}
}
objref.selectedIndex = 0;

}
else{

lugar="province"
ALugar = D;
lugardest="district"

department = eval("document.formulario1.department.options[document.formulario1.department.selectedIndex].value")

cm=cm.substring(3,6) // id de provincia
cm = department+cm

is_Otro = eval("document.formulario1."+lugar+".options[document.formulario1."+lugar+".selectedIndex].value")

objref = eval("document.formulario1."+lugardest+".options")

for(var i=1; i < ALugar.length; longitud +=(MID(ALugar[i].substring(0, ALugar[i].indexOf('&')),0,6) == cm) ? 1 : 0, i++);
objref.length = longitud+1;

for(var i=1; i < ALugar.length; i++)
{
if (MID(ALugar[i].substring(0, ALugar[i].indexOf('&')),0,6) == cm)
{ objref[item].value = ALugar[i].substring(0, ALugar[i].indexOf('&'));
objref[item++].text = ALugar[i].substring( ALugar[i].indexOf('&')+1, ALugar[i].length);
}
}
objref.selectedIndex = 0;
}



}

function cambiamodel(elcombo,numero) {
codmodelo = elcombo.options[elcombo.selectedIndex].value;
if (numero=="1"){ pasamela(codmodelo,1); }
if (numero=="2"){ pasamela(codmodelo,2); }
}

function inicia() {
carga(document.formulario1.department, De);
}

Etiquetas: anidados, box, combo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:00.