Posts Tagged ‘AJAX’

Articles

Hola mundo AJAX (usando metodos POST y GET)

In JavaScript on 05/12/2011 por Esteban Olate Etiquetado: , ,

Anteriormente les mostraba cómo crear un objeto de AJAX válido para diferentes navegadores. Ahora veremos la implementación con dos ejemplos básicos. Para realizar esto debemos contar con los siguientes tres archivos.

scriptAJAX.js:

function crearAjax(){
   var objetoAjax=false;
   if(navigator.appName=="Microsoft Internet Explorer")
     objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
   else
     objetoAjax = new XMLHttpRequest();
   return(objetoAjax);
}
function llamadaAJAX(metodo){
  //Creamos nuestro objeto
  var ajax=crearAjax();
  //Preguntamos si es válido
  if(ajax){
    //Preguntamos si el método es POST
    if(metodo == "post"){
      //Llamada al archivo mediante POST
      ajax.open("POST","archivo.php");
      //Se cambian las cabeceras de nuestro objeto AJAX para poder enviar datos
      ajax.setRequestHeader("Content-Type",
                            "application/x-www-form-urlencoded");
      /* Enviamos datos, si se quiere agregar más se debe colocar el símbolo ‘&’
        al comienzo de cada nuevo dato */
      ajax.send("valor='post'");
    }
    //Preguntamos si el método es GET
    if(metodo == "get"){
      /*  Llamada al archivo mediante GET, en esta ocasión los datos son
          enviados atraves de la URL, por lo que ya no es necesario cambiar
          cabeceras ni enviar nada en el método ‘send()’ */
      ajax.open("GET","archivo.php?valor=get");
      ajax.send(null);
    }
    /* Con esta función controlamos los estados de nuestro objeto AJAX,
       pueden ser estados 1,2,3,4,200,etc..  */
    ajax.onreadystatechange = function(){
      //Preguntamos si nuestro objeto se encuentra en el estado 4 (Cargado)
      if(ajax.readyState==4){
        // Dejamos la respuesta en una variable, de tipo nodo texto (DOM)
        var respuesta = document.createTextNode(ajax.responseText);
        //Obtenemos una referencia al div respuesta
        var div = document.getElementById("resultado");
        //Agregamos el nodo de texto al div
        div.appendChild(respuesta);
      }
    }
  }
}

index.html:

<html>
  <head>
    <title>Hola mundo AJAX!</title>
    <!– Incorporamos el script a nuestra página –>
    <script type="text/javascript" language="javascript" src="scriptAJAX.js"></script>
  </head>
  <body>
    <input type="button" value="Llamada GET" onclick="llamadaAjax('get');" />
    <br />
    <input type="button" value="LLamada POST" onclick="llamadaAjax('post');" />
    <br />
    <div id="resultado" name="resultado"></div>
  </body>
</html>

archivo.php:

<?php
  // Preguntamos si llego una variable llamada ‘valor’ mediante POST
  if(isset($_POST["valor"])){
    // Enviamos mensaje para POST
    echo "Hola mundo! por POST";
  }
  // Preguntamos si llego una variable llamada ‘valor’ mediante GET
  if(isset($_GET["valor"])){
    // Enviamos mensaje GET
    echo "Hola mundo! por GET";
  }
?>

Espero haya quedado claro cómo utilizar los métodos POST y GET con AJAX.


Esteban Olate

Articles

Creando objeto AJAX

In JavaScript on 04/12/2011 por Esteban Olate Etiquetado: ,

La integración de AJAX ha logrado que nuestros sitios Web sean más agiles a la hora de desplegar información o manipular acciones sin esas molestas recargas. Ahora les mostrare como crear con AJAX con una pequeña función JavaScript válida para la variedad de navegadores más usados, quiero decir para iExplorer y todos los demás…

Código:


function crearAjax(){
  /* Declarando variable a retornar con nuestro objeto, retornaremos "false"
   * en caso de algún error
   */
  var objetoAjax=false;
  //Preguntando si nuestro querido usuario aún usa Internet Explorer
  if(navigator.appName=="Microsoft Internet Explorer")
    objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
  //De lo contrario está usando otro navegador, por supuesto uno mejor
  else
    objetoAjax = new XMLHttpRequest();
  //Retornamos nuestro objeto
  return(objetoAjax);
}

Esta función es válida para las últimas versiones de iExplorer (8,9) y para navegadores como Firefox, Opera, Chrome, y similares.


Esteban Olate