| |||
como cargar datos de forma asincronica Hola tengo una lista desplegable con varias opciones y lo que quiero es recuperar los datos elegidos de forma asincronica osea sin recargar la pagina alguna idea de como se hace? |
| |||
Respuesta: como cargar datos de forma asincronica Con AJAX PUEDES INTENTAR LO SIGUIENTE: //Carga el objeto AJAX "OJO CADA NAVEGADOR CARGA EL OBJETO DE UNA FORMA DIFERENTE ASI QUE LO SOLUCIONAMOS CON UN TRY CATCH, GRACIAS A EL MALDITO INTERNET EXPLORER QUE NO SE ADAPTA" function getXMLHTTPRequest() { try { req = new XMLHttpRequest(); } catch(err1) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (err2) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err3) { req = false; } } } return req; } var http = getXMLHTTPRequest(); //Guardas el objeto en una varible. function datos() { var myurl = 'datos.php'; // llamas al archivo php con el cual mediante xml tienes la informacion que sera motrada al hacer click a uno de los elementos de la lista. myRand = parseInt(Math.random()*999999999999999);//Esto es un ingenio por asi decirlo que se utiliza para evitar que se recargue la página debido al problema de la cáche con los navegadores. var modurl = myurl+"?rand="+myRand; http.open("GET", modurl, true); // Se utiliza el método GET. http.onreadystatechange = useHttpResponse; //Llama a la fúncion mientras va cambiando el estado de la peticón. http.send(null);//Envia la petición } function useHttpResponse() { if (http.readyState == 4) { // Que este a 4 significa que se han recibido los datos. if(http.status == 200) { // Que este a 200 significa que los datos estan "OK" , es decir que son correctos. var timeValue = http.responseXML.getElementsByTagName("información ")[0]; // Aqui abre el primer tag del archivo xml. document.getElementById('id del div').innerHTML = timeValue.childNodes[0].nodeValue; //Aqui imprime en el div que creaste en el documento llamado "id del div" en este caso } } else { document.getElementById('showtime').innerHTML = '<img src="anim.gif">'; si quieres mientras se va cargando imprime esta imagen Y ya esta esto es todo , claro tienes que tener un archivo php , por ejemplo este: Código PHP: Última edición por ellokodeluis; 13/08/2011 a las 13:14 |
| |||
Respuesta: como cargar datos de forma asincronica ellokodeluis en primer lugar gracias por ponerme un ejemplo de como se hace, bueno esta linea no la entiendo como tendria que hacer esa parte php con la informacion, si me pudieras poner un ejemplo, te lo agradeciria. var myurl = 'datos.php'; // llamas al archivo php con el cual mediante xml tienes la informacion que sera motrada al hacer click a uno de los elementos de la lista. y esta linea me da error: myRand = parseInt(Math.random()*999999999999999);//Esto es un ingenio por asi decirlo que se utiliza para evitar que se recargue la página debido al problema de la cáche con los navegadores. Saludos. Última edición por pithon; 13/08/2011 a las 15:03 |
| |||
Respuesta: como cargar datos de forma asincronica <?php header('Content-Type: text/xml'); sleep (3); echo "<?xml version=\"1.0\"?><clock1><timenow>".date('H:i:s'). "</timenow></clock1>"; ?> } } Mira en vez de "información" como te he puesto antes tendrías que poner timenow, si te das cuenta accedes al valor de timenow , el cual es una funcion en php que te devuelve la hora del servido , ya tendrias que ingeniartela tu con algun condicional que haga que se ejecute la función datos cuando el usuario haga click en un elemento de la lista, y esta cargara lo que se encuentre en este caso dentro de timenow, si pulsa sobre otro elmento de la lista pues nada deverías crear otra función llamada datos2 que acceda a otro elemento del tag que esta en el archivo php y asi susecivamente aunque creo que se puede hacer mejor modificando la función data pero en fin tu busca información al respecto que ya la base la tienes hecha , sería cosa de que buscaras informacion sobre XML y AJAX. ps: Y perdona las faltas de ortografías que estoy sin tiempo :). Suerte. |
Etiquetas: |