Articles

Hola mundo AJAX (usando metodos POST y GET)

In JavaScript on 05/12/2011 by 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

3 respuestas to “Hola mundo AJAX (usando metodos POST y GET)”

  1. No aparece nada solo dos botones uno de get y otro de post pero no hacen nada en donde pasa los parametros?

    • Asegúrate de tener todos los archivos correctamente referenciados… los dos botones llaman a una función de javascript y sacan los parámetros automaticamente

  2. Esteban Buenos Días me pasa lo mismo del compañero atrás y solo me salen los dos botones pero no me funciona cuando hago el onclick en ninguno de los dos botones, que sera? gracias.

Deja un comentario