Antes de poner me a ello, a ver is entendí para que sirve cada cosa
la comento dentro de tu código
Código PHP:
var xmlHttp;
function showPoll(VARIABLE){
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null){
alert ("Tu navegador no soporta AJAX! No podras usar esta aplicación.");
return;
} // esto es obvio, el mensaje de alert lo dice todo.
var url="PAGINA_QUE_VAS_A_HACER_CONSULTA.php"; //este va ha ser el php donde hago mi consulta si mi VARIABLE existe
url=url+"?VARIABLE="+VARIABLE; // VARIABLE es el valor que ingresa el usuario, para mi caso el código postal
//Puedes crear una variable en la funcion que diga cual es el id que deseas verificar tu escoges
document.getElementById("DIV_ID").innerHTML=""; // DIV_ID es una capa que debo tener por ahí vacía que usaré para mostrar el mensaje de cargando y la img ajaxLoading.gif
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState==1){ //readyState==1 supongo que es el estado en que se encuentra mientras esta haciendo la llamada al php.
img = document.createElement('img');
img.src="images/ajaxLoading.gif";
document.getElementById("DIV_ID").appendChild(img);
document.getElementById("DIV_ID").appendChild(document.createTextNode(" Cargando por favor espere..."));
}
if (xmlHttp.readyState==4){ //readyState==4 es cuando ya tuvo una respuesta, y esa respuesta se guarda en responseText.
document.getElementById("DIV_ID").innerHTML=xmlHttp.responseText; // muestro el responseText dentro de la capa DIV_ID
}
}
xmlHttp.open("GET",url,true); // para hacer la llamada a mi php
xmlHttp.send(null); // para que se menatenga en la misma página... de eso se trata el ajax no????, jajajaja
}
function GetXmlHttpObject(){ // crea el objeto de Ajax para hacer lo que quiero.
var xmlHttp=null;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}catch(e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
return xmlHttp;
}
Si es que he acertado en todo, tengo unas preguntitas:
* Confirmame si en este ejemplo el DIV_ID es una capa que está por ahí en mi HTML y me muestra el " Cargando por favor espere..." y luego la respuesta del php.
* Esa respuesta del PHP como debe ser, puede ser un simple "echo 'ok';" o "echo 'ko'; o también puede ser "true" o "false" o un "<img src=ok.gif>"????
* si esto es así, en vez de que guarde la respuesta en DIV_ID, puede entregarlo como "return" de la función showPoll()???
Lo que me gustaría hacer es esto:
Código PHP:
<script>
function valDatos(F) {
txt_alerta = "No existe el código postal introducido.";
if( !showPoll(F.codpostal.value)) { alert(txt_alerta); F.codpostal.focus(); return false;}
else{ F.submit(); }
</script>
....
<form action="inicio.php" method="post" name="datosForm" id="datosForm">
Código postal: <input name="codpostal" id="codpostal" type="text" />
<input id="btn" name="btn" onclick="return valDatos(document.datosForm);" type="button" value="Enviar" />
si se puede hacer así sería de PM, porque así tengo todas las demás validaciones.
Saludos y gracias
Carlos