Ver Mensaje Individual
  #9 (permalink)  
Antiguo 30/05/2009, 10:57
Avatar de chiquirf
chiquirf
 
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 19 años, 1 mes
Puntos: 3
Respuesta: validar campo con datos de Base de datos

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
__________________
=================
Chiqui nunca muere ! ! !