Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2010, 16:22
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 9 meses
Puntos: 20
Dudas JQUERY y AJAX

Buenas,

Tengo dudas sobre la utilización de JQUERY y sus funciones AJAX, he estado leyendo varias paginas que hablan del tema pero no consigo aclararme
http://librosweb.es/ajax/capitulo10/...ia_jquery.html

Tengo los siguientes 3 archivos

principal.php
Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>Probando JQUERY y Ajax</title>
  6. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
  7. <script type="text/javascript">      
  8.     $.ajax({
  9.       url: 'pagina.php',
  10.       type: 'POST',
  11.       async: true,
  12.       data: 'parametro1=valor1&parametro2=valor2',
  13.       success: procesaRespuesta,
  14.       error: muestraError
  15.     });
  16.    
  17.     // Petición GET con envío de parámetros y función que
  18.     // procesa la respuesta
  19.     $.get('pagina.php',
  20.       { articulo: '34' },
  21.       function(datos) {
  22.         alert('Respuesta = '+datos);
  23.       });
  24. </script>
  25. </head>
  26.  
  27. <body>
  28. <div id="info"></div>
  29.  
  30. <script type="text/javascript">
  31.     //La función $.load() inserta el contenido de la respuesta del servidor en el elemento de la página que se indica.
  32.     $('#info').load('informacion.php');
  33. </script>
  34.  
  35. </body>
  36. </html>

pagina.php
Código:
dato1
dato2
dato3
dato4
informacion.php
Código:
Aquí la información!

Me he dado cuenta que si quiero que se muestre el contenido de un fichero ej. lineas de la 30 a la 33 debe estar por debajo de la linea 28.

Pero lo que quiero conseguir en jquery, es lo siguiente:

Desde la página principal, el usuario pulsa sobre un boton o texto, esto hace que se envíe una variable, por ejemplo muestra=todo, a una página "ajax.php", esta página recibe la variable y devuelve la respuesta a la página principal en formato Json. (Entiendo que la pagina ajax.php tiene que ser la encargada de generar ese json no?)

Cómo hago ese proceso con JQUERY? me podéis guiar un poco? entiendo que no debe ser dificil xD



Sin utilizar JQUERY "parte" del proceso sería así

Código PHP:
Ver original
  1. <html>
  2.   <head>
  3.   <title>Obteniendo datos con AJAX sin recargar pagina</title>
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <script language="javascript"  type="text/javascript">
  7. var RequestObject = false;
  8.   var Archivo = 'datos_ajax.php'; //directorio donde tenemos el archivo ajax.php
  9.   window.setInterval("actualizacion_reloj()", 5000); // el tiempo X que tardará en actualizarse
  10.   if (window.XMLHttpRequest) //
  11. RequestObject = new XMLHttpRequest();
  12. if (window.ActiveXObject)  
  13.   RequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  14. function ReqChange() {
  15. // Si se ha recibido la información correctamente
  16.   if (RequestObject.readyState==4) {
  17.   // si la información es válida
  18.       if (RequestObject.responseText.indexOf('invalid') == -1)
  19.       {
  20.       // obtener la respuesta
  21.       var msgs = RequestObject.responseText.split('|');
  22.       // Buscamos la div con id online
  23.       document.getElementById("tabla1").innerHTML = msgs[0];
  24.       }
  25.       else {
  26.       // Por si hay algun error
  27.       document.getElementById("tabla1").innerHTML = "Error llamando";
  28.       }
  29.   }
  30. }
  31. function llamadaAjax() {
  32.  // Mensaje a mostrar mientras se obtiene la información remota...
  33.   //document.getElementById("tabla1").innerHTML = "";
  34.   // Preparamos la obtención de datos
  35.   RequestObject.open("GET", Archivo , true);
  36.   RequestObject.onreadystatechange = ReqChange;
  37.   // Enviamos
  38.   RequestObject.send(null);
  39.   }
  40.   function actualizacion_reloj() {
  41.     llamadaAjax();
  42.   }
  43. </script>
  44. <body onload="llamadaAjax();">
  45. <h2>Obteniendo datos con AJAX sin recargar pagina </h2>
  46.   <div id="tabla1"></div>
  47. </body>
  48. </html>

Muchas gracias de antemano!