¿Quieres recibir una notificación por email cada vez que Miscapu escriba una noticia?
Aquí comenzamos con nuestra primera aplicación usando las tecnologías PHP y Ajax. Este primer proyecto posee el siguiente proceso y los siguientes pasos:
Descargar Explicación del Código
<!<span > DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" ><<span >html xmlns = "http://www.w3.org/1999/xhtml" >
<<span >head >
<<span >title >AJAX con PHP: Inicio Rápido </<span >title >
<<span >script type = "text/javascript" src = "quickstart.js" ></<span >script>
</<span >head >
<<span >body onload = 'process()' >
El Servidor desea saber su nombre:
<<span >input type = "text" id = "myName" />
<<span >div id = "divMessage" />
</<span >body >
</<span >html >
var xmlHttp = crearObjetoXMLHttpRequest();
// Almacenando la referencia al Objecto XMLHttpRequestvar xmlHttp = crearObjetoXmlHttpRequest();
// Recuperando el objeto XMLHttpRequest
function crearObjetoXmlHttpRequest ()
{
var xmlHttp;
// Si está ejecutando Internet Explorer
if (window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
}
catch (e)
{
xmlHttp = false ;
}
}
// Si está ejecutando Mozilla o otros navegadores
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = false ;
}
}
// Devolver el objeto creado o mostrar un mensaje de error
if ( ! xmlHttp)
alert( "Error al crear el Objeto XMLHttpRequest." );
else
return xmlHttp;
}
// Hacer la solicitud HTTP asincrónica utilizando el objeto XMLHttpRequest mediante la función "process"
function process ()
{
// Proceda sólo si el objeto xmlHttp no está ocupado
if (xmlHttp.readyState = = 4 || xmlHttp.readyState = = 0 )
{
// Recuperar el name escrito por el usuario en el "input"
name = encodeURIComponent(document.getElementById( "myName" ). value );
// Ejecutar la página inicioRapido.php desde el servidor
xmlHttp. open ( "GET" , "quickstart.php?name=" + name , true );
Más sobre// Definiendo el método para manejar las respuestas del servidor
xmlHttp.onreadystatechange = handleServerResponse;
// Hacer que el servidor solicite las respuestas
xmlHttp. send ( null );
}
else
// Si la conexión está ocupada, vuelva a intentarlo después de un segundo
setTimeout ( 'process()' , 1000 );
}
// Ejecutando automáticamente cuando se recibe un mensaje desde el servidor
function handleServerResponse ()
{
// Avanzar sólo si la transacción ha finalizado
if (xmlHttp.readyState = = 4 )
{
// Estado de 200 indica que la transacción se ha completado correctamente
if (xmlHttp. status = = 200 )
{
// Extraer el XML recuperado del servidor
xmlResponse = xmlHttp.responseXML;
// Obtener el elemento del documento (el elemento raíz) de la estructura XML
xmlDocumentElement = xmlResponse.documentElement;
// Obtener el mensaje de texto, que está en el primer hijo de
// el elemento del documento
helloMessage = xmlDocumentElement. FirstChild . data ;
// Actualizar la pantalla del cliente utilizando los datos recibidos desde el servidor
document.getElementById( "divMessage" ).innerHTML =
' ' + helloMessage + '' ;
// Reiniciar Secuencia
setTimeout ( 'process()' , 1000 );
}
// Un estado HTTP diferente de 200 señala un error!
else
{
alert( "Ocurrió un problema al accesar al servidor: " + xmlHttp.statusText);
}
}
}
<?php<br /> // Generando una salida XMLheader ( 'Content-Type: text/xml' );
// Generando una salida Header
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' ;
// creando el elemento
echo '' ;
// Devolviendo el nombre de usuario
$name = $_GET [ 'name' ];
// generando salida dependiendo del usuario administrador o usuario visitante
$userNames = array ( 'CRISTIAN' , 'MIGUEL' , 'FELIPE' , 'GASPAR' , 'ELENA' );
if ( in_array ( strtoupper ( $name ), $userNames ))
echo 'Hola, Administrador ' . htmlentities ( $name ) . '!' ;
else if ( trim ( $name ) == '' )
echo 'Visitante, por favor ingrese su nombre!' ;
else
echo htmlspecialchars ( $name ) . ', Yo no te conozco!' ;
// Cerrando el elemento
echo '' ;
?>