Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2006, 13:14
Avatar de JALF
JALF
 
Fecha de Ingreso: septiembre-2004
Ubicación: Cali - Colombia
Mensajes: 634
Antigüedad: 20 años, 3 meses
Puntos: 2
AJAX lo podemos reducir a está función en JavaScript????

Ajax lo podríamos reducir a esta simple función en JavaScript??? o que más faltaria???

ajax.js
Código:
/**
 * Función AJAX, para enviar información por el metodo GET o POST
 * y recibir una respuesta sin recargar la página en un <div></div>
 * especifico.
 *
 * @param pagina
 * @param respuesta
 * @param metodo
 * @param variables
 */
function consultar(pagina, respuesta, metodo, variables){
  // Podríamos indicar que estamos cargando los datos.... que espere
  // document.getElementById(respuesta).innerHTML = 'Cargando datos...';
  // Preparación de la variable 'pagina' en caso de que se haga uso del metodo GET
  if(metodo == 'GET'){
    pagina = pagina + '?' + variables;
  }
  else{
    if(metodo == ''){
      metodo = 'POST';
    }
  }
  // Compatibilidad con FireFox, Opera y cualquier otro BUEN navegador
  if(typeof(XMLHttpRequest) != 'undefined'){
    try{
      var satelite = new XMLHttpRequest();
    }
    catch(e){ }
  }
  else{
    // Compatibilidad para el navegador más ASQUEROSO del planeta [ IE ]
    try{
      var satelite = new ActiveXObject('Microsoft.XMLHTTP');
    }
    catch(e){
      var satelite = new ActiveXObject('Msxml2.XMLHTTP');
    }
  }
  // una vez incializado el objeto y definido en el contexto de nuestro script
  // Intentaremos abrir la conexión a la dirección indicada por la variable 'pagina'
  try{
    // esto bien podría cambiar a "satelite.open('GET',pagina,true);" si se desea pasar los datos mediante método GET
    satelite.open(metodo,pagina,true);
  }
  catch(e){
    return false;
  }
  // Esta variable envía una cabecera indicando que enviaremos los datos método 'post' en forma urlencoded
  // ejemplo ("mi_variable=cosa&otra_variable=otra_cosa");
  satelite.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  // Enviamos los datos 'elementos'
  satelite.send(variables);
  try{
    // Justo cuando el estatus de la petición cambia esperamos a que sea igual a 4 que es igual a OK.
    satelite.onreadystatechange = function(){
      if(satelite.readyState == 4){
        // ¡¡¡ Listo !!!, ahora ya tenemos el resultado y podemos acceder a él desde 'satelite.responseText'
        // El resultado lo vamos a escribir en el elemento 'respuesta' ...
        document.getElementById(respuesta).innerHTML = satelite.responseText;
      }
    }
  }
  catch(e){
    return false;
  }
  return true;
}
enLinea.php
Código PHP:
<?php

// este archivo va a mostrar SOLAMENTE a la respuesta
echo "Datos en GET: <pre>";
print_r($_GET);
echo 
"</pre>";

echo 
"Datos en POST: <pre>";
print_r($_POST);
echo 
"</pre>";

$usuarios_en_linea 68;
echo 
"<strong>".$usuarios_en_linea."</strong>";

?>
index.html
Código HTML:
<html>
<head>
  <script type="text/javascript" src="ajax.js"></script>
  <script type="text/javascript">
  window.onload = function(){
    // indicamos cada cuánto tiempo se lleva a cabo la consulta de
    // usuarios en línea
    consultar("enLinea.php","respuesta","POST","hola=12&hola2=12")
  }
  </script>
</head>
<body>
  <div id="respuesta"></div>
</body>
</html> 
Los dos ultimos archivos es para dar un ejemplo de la función ya trabajando!!!! pero....... vuelvo y pregunto!
AJAX lo podriamos reducir a solo lafunción que pasé en un principio???? o que más faltaria????
__________________
Ubuntu User # 15554
http://dubaiphp.wordpress.com/ -Mi vida de desarrollo, juegos y algo más en un Blog-