Ver Mensaje Individual
  #5 (permalink)  
Antiguo 04/01/2006, 10:45
Spielberg
 
Fecha de Ingreso: diciembre-2004
Ubicación: Pamplona
Mensajes: 71
Antigüedad: 20 años
Puntos: 0
Si la verdad es que me xplico fatal

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
__________________
"Durante toda mi vida, mi padre habló de abandonar el pequeño pueblo en el que había nacido por una gran ciudad, porque, como él decía, no quería ser "un gran pez en una pequeña pecera".

Big Fish