He estado releyendo lo que escribí en mi blog y no me entero ni yo de lo que contiene. Voy a intentar enmendar mi error.
1.- El script funcionando lo tienes
aqui;
Puedes comprobar su funcionamiento seleccionando cualquier municipio (el único que tiene barrios es Pamplona).
2.- El archivo "server1server.php" es un que tienes que hacer que contendrá lo siguiente;
Código PHP:
//CONTIENE FUNCIONES PHP QUE SON LLAMADAS DIRECTAMENTE DESDE AJAX PARA QUE HAGAN COSAS
require("xajax.inc.php");//Incluimos la libreria xajax
require("bd.php");//Incluimos una conexion a la base de datos
function actualizar($muni){//Funcion que llamaremos desde el primer select para crear el segundo
$conexion = new arquitecto("qai625");//Conexion a la base de datos
$sql = "SELECT * FROM `barrio` ORDER BY Valor";
$result = mysql_query( $sql );
if (mysql_affected_rows() != 0){
$resultado = "<select class=\"inputbox\" name=\"VALORES[Barrio]\">";
$resultado .= "<option value=''>Todos los barrios</option> \n";
while ( $arr_asoc = mysql_fetch_array( $result ) ) {
$resultado .= "<option value='" . $arr_asoc['ID_Barrio'] . "'>" . $arr_asoc['Valor'] . " (" . $arr_asoc['count(*)'] . ")</option> \n";
}
$resultado .= "</select>";
$resultado = tildes( $resultado );
}else{
$resultado = "Municipio sin barrios";
} //Como ves todo lo ponemos dentro de una variable tipo cadena que se llama \$resultado lo pasamos por la funcion tildes() para convertir las tildes
$respuesta = new xajaxResponse();//Creamos un nuevo objeto xajax
$respuesta->addAssign("barrio","innerHTML",$resultado);//Función importante que se le pasan tres parametros 1.- donde pintar, 2.- Como: "innerHTML" por defecto y 3.- Que: $resultado.
return $respuesta->getXML();
}
function limpiar(){//Funcion que se emplea apara que explorer no haga cosas raras
$respuesta = new xajaxResponse();
$respuesta->addAssign("barrio","innerHTML","");
return $respuesta->getXML();
}
function tildes($string){
$array = array("á" => "a", "é" => "e", "í" => "i", "ó" => "o", "ú" => "u");
foreach ( $array as $aguja_vieja => $aguja_nueva){
$string = str_replace ( $aguja_vieja, $aguja_nueva, $string );
}
return $string;
}
$xajax = new xajax("ruta_completa_a_tu_archivo/server1.server.php","xajax_",false);
$xajax->registerFunction("actualizar");//Declaramos las funciones de PHP o javascript que no harán falta para que xajax sepa que existen
$xajax->registerFunction("limpiar");
$xajax->registerFunction("menu_barrio");
$xajax->processRequests();//Lo pones y ya esta
El código del archivo js es tal que;
Código PHP:
function actu(){//Funcion que es llamada continuamente
xajax_menu_barrio;
setTimeout("menu_barrio;",1000);
}
function menu_barrio(cual){//Funcion que es llamada al selecionar uno de los elementos del primer select
str_guardar = document.getElementById(cual).value;//Recojo el valor del select
xajax_actualizar(str_guardar);//Llamo a la funcion actualizar del server1.server.php con el prefijo xajax y pasandole como argumento el pueblo seleccionado
document.getElementById("barrio").className ="normal";//Le aplico el estilo que me de la gana al nuevo select
}
Y ya está, no sé site servirá, creo que mejor que antes ya lo he hecho no? un saludo
Spielberg