Hola
Con ASP, la verdad es que no queda muy bien. Mejor sería ASP y AJAX
poblaciones.html
Código html:
Ver original<script type="text/javascript" src="poblaciones.js"></script> <form action="poblaciones.asp" method="post"> Comunidad
<br /><select name="s_1" id="s_1">Provincia
<br /><select name="s_2" id="s_2" disabled="true">Ciudad
<br /><select name="s_3" id="s_3" disabled="true">Calle
<br /><select name="s_4" id="s_4" disabled="true">
poblaciones.js
Código js:
Ver originalvar ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
var ns6 = (document.getElementById)? true:false
function captura_objeto(idnombre) {
if (ns6)
{
return document.getElementById(idnombre);
}
else if (ie4)
{
return document.all[idnombre];
}
else if (ns4)
{
return document.layers[idnombre];
}
else
{
return null;
}
}
function creaAjax(){
var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
var ajax = false;
for(var i=0 ; !ajax && i<ajaxs.length ; i++){
try{
ajax = new ActiveXObject(ajaxs[i]); // Internet Explorer
}
catch(e) {
ajax = false;
}
}
if(!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
}
return ajax;
}
function Ciudad(buska, id) {
var ajax=creaAjax();
var objetosel = captura_objeto("t_"+id);
ajax.open("GET",'poblaciones_ajax.asp?mostrark='+buska+'&d='+id,true);
ajax.onreadystatechange = function() {
if (ajax==null){
alert ("Tu navegador web no soporta AJAX!");
return;
}
if (ajax.readyState==4){
if(ajax.status==200){
if (objetosel.disabled = true) objetosel.disabled = false;
else objetosel.disabled = true;
objetosel.innerHTML = ajax.responseText;
}
else if (ajax.status==404)
{
objetosel.innerHTML = "La dirección no existe";
}
else
{
objetosel.innerHTML = "Error: " + ajax.status;
}
}
}
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send(null);
return
}
function Evento() {
var elemento = document.getElementById("s_1")
var nomevento = "change"
var funcion = function() {
var suma = parseInt(this.id.split("_")[1]);
suma += parseInt(1);
Ciudad(document.getElementById(this.id).options[document.getElementById(this.id).selectedIndex].value, +suma);
}
if (elemento.attachEvent)
{
var f=function(){
funcion.call(elemento,window.event);
}
elemento.attachEvent('on'+nomevento,f);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,false);
return true;
}
else
return false;
}
window.onload = Evento;
CONTINUA EN EL SIGUIENTE POST