Foros del Web » Programando para Internet » Javascript » Frameworks JS »

como cargar datos de forma asincronica

Estas en el tema de como cargar datos de forma asincronica en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/08/2011, 10:53
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
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?
  #2 (permalink)  
Antiguo 13/08/2011, 13:08
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 2
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:

<?php
header
('Content-Type: text/xml');
sleep (3);
echo 
"<?xml version=\"1.0\"?><clock1><timenow>".date('H:i:s')."</timenow></clock1>";
?>

  }
}

Última edición por ellokodeluis; 13/08/2011 a las 13:14
  #3 (permalink)  
Antiguo 13/08/2011, 14:48
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
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
  #4 (permalink)  
Antiguo 14/08/2011, 03:43
 
Fecha de Ingreso: agosto-2011
Mensajes: 12
Antigüedad: 12 años, 8 meses
Puntos: 2
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.
  #5 (permalink)  
Antiguo 14/08/2011, 05:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: como cargar datos de forma asincronica

ellokodeluis gracias por tu explicacion se agradece, saludos.

Etiquetas: ajax, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:46.