Exactamente. Si quieres mandar datos a un script en PHP desde javascript, AJAX es lo que tú necesitas. Es sencillo: Simplemente creas un objeto XMLHTTPRequest() (u otro, dependiendo del navegador), creas la URL con las variables que quieres enviar (si vas a utilizar el método GET, claro está) y luego utilizas el método open del objeto para enviar la petición.
Por último le indicas mediante el gestor de evento .onreadystatechange a cuál función llamar en el momento que el estado de la petición cambie. Si la información ya se ha cargado y la respuesta ha sido exitosa, puedes utilizarla para presentarla en el documento actual.
Ejemplo:
ajax.js
Código :
// Esta función se encarga de crear el objeto XMLHTTPRequest y lo devuelve.
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (err2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err3) {
req = false;
}
}
}
return req;
}
var http = getXMLHTTPRequest(); // creo una instancia del objeto XMLHTTPRequest.
function enviarvariable(variable) { // funcion encargada de inviar la variable al archivo php llamado index.php.
var url = 'index.php?variable=' + variable; // creación de la URL.
http.open("GET", url, true); // fijando los parametros para el envío de datos.
http.onreadystatechange = handler; // Qué función utilizar en caso de que el estado de la petición cambie.
http.send(null); // enviar petición.
}
function handler() {
if (http.readyState == 4) {
if(http.status == 200) {
alert(http.responseText); // El texto de respuesta del archivo index.php lo muestra como una alerta.
}
}
}
enviarvariable('hola'); // llamo a la función pasándole como parámetro el valor de la variable que quieres enviar.
El código de respuesta del archivo php puede ser lo más simple que quieras: desde texto plano, pasando por html hasta el almighty XML. Como ejemplo, lo mejor es texto plano
index.php
Código :
<?php
echo $_GET['variable'] . ' ese es el valor de la variable llamada $variable, que fue enviada mediante GET a este script';
?>
y el archivo html más sencillo donde podemos aplicar esto puede contener lo siguiente.
index.html
Código :
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC \'-//W3C//DTD XHTML 1.0 Strict//EN\'
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="es">
<head>
<title>Hola Mundo</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
</body>
</html>
De esa manera puedes enviar valores a scripts de PHP mediante javascript.
Acuerdate que en este ejemplo lo hice con GET, pero también puedes enviar datos mediante el método POST, es igual de facil y lo puedes complicar como quieras.
Para un poco más de información sobre AJAX puedes visitar la sección de tutoriales de CristaLAB, creo que hay algunos allí. También está Google.
De aquí te descargas éste ejemplo funcional (Claro, si te interesa).
http://d.turboupload.com/de/1906555/5hwxb00y9v.html