Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks JS (http://www.forosdelweb.com/f127/)
-   -   optimizar menus dependientes (http://www.forosdelweb.com/f127/optimizar-menus-dependientes-414676/)

dieguicho 04/08/2006 10:55

optimizar menus dependientes
 
estimados.. hice esta funcion para mostrar en un menu_destino las opciones que levanta de un xml al cual le pase como parametro el valor del menu_origen
funcionar... funciona.. el tema es que porejemplo
selecciono una provincia y la pagina me queda intulizada hasta que se llena el menu, queda como toda dura, de que manera puedo manejar eso y no mostrar nada hasta qeu se termine de cargar asi no queda todo congelado
mil gracias les dejo el codigo


Código HTML:

function menu_xml(menu_origen,menu_destino,tipo){
        if(menu_origen.value!=0){
                var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
                xmlDoc.async="false"
                if(tipo==1){
                        xmlDoc.load("xml/localidades.php?IDprovincia="+menu_origen.value)
                }
                if(tipo==2){
                        xmlDoc.load("xml/modelos.php?IDmarca="+menu_origen.value)
                }               
                document.getElementById(menu_destino).options.length=0;
                       
                for (i=0;i<xmlDoc.documentElement.childNodes.length;i++){
                        v0 = xmlDoc.documentElement.childNodes.item(i).childNodes.item(0).text
                        v1 = xmlDoc.documentElement.childNodes.item(i).childNodes.item(1).text
                        document.getElementById(menu_destino).options[i]=new Option(v1,v0);
                }
        } else {
                document.getElementById(menu_destino).options.length=0;
                document.getElementById(menu_destino).options[0]=new Option("","0");
        }
}

... y lo llamo asi...
Código HTML:

onChange="Javascript:menu_xml(this,'mi_localidad',1)"

zaqpz 06/08/2006 22:26

No tengo experiencia en el uso de la clase XMLDOM (parece ser que solo funcionará en IE, aquí tienes algo para Firefox y compañía: http://www.forosdelweb.com/showthread.php?t=404740), pero por lo que leí, la propiedad "async" debe estar en true para funcionar asincrónicamente. Al ponerla en true deberás esperar que la propiedad onreadystatechange del objeto xmlDoc esté en "4" para recorrer tu XML, al igual que se hace con el objeto XMLHTTP comunmente utilizado para AJAX.

Espero que estos datos te resulten de utilidad. Saludos.


La zona horaria es GMT -6. Ahora son las 20:44.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.