Ver Mensaje Individual
  #12 (permalink)  
Antiguo 17/01/2008, 05:54
Avatar de ZiTAL
ZiTAL
 
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
Re: formulario + Ajax + ASP

OK,

tenemos varios input, que cuando pierde foco quieres que vea en la BD si existe o no ese campo.

A la funcion le ponemos el nombre verificar con el parametro this, asi cogeremos cualquier atributo facilmente ;)
Código HTML:
<input type="text" name="nombre" id="nombre" value="" onblur="verificar(this)"/>
<input type="text" name="email" id="email" value="" onblur="verificar(this)"/> 
Ahora tenemos el JS:

Código:
// funcion que genera el objeto XMLHTTP

function ajaxFunction()
  { var xmlHttp;
  try { xmlHttp=new XMLHttpRequest();return xmlHttp; }
  catch (e) { try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");return xmlHttp; }
  catch (e) { try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");return xmlHttp; }
  catch (e) { alert("Your browser does not support AJAX!");return false; }
  }}}

function verificar(esto)
 {
  var ajax = new ajaxFunction();
  ajax.onreadystatechange=function()
    {
     if(ajax.readyState==4) 
      {
       if(ajax.responseText=='Existe')
        {
          esto.value='';
          esto.focus();
        }
       else if(ajax.responseText=='No existe')
        {
          // a tu gusto ;)
        }
      }
    }
  ajax.open("GET","pagina.asp?campo="+esto.name+"&valor=+"esto.value,true);
  ajax.send(null);
 }
El estado del "ajax" es de 5 fases, del 0 al 4:
Código:
0	The request is not initialized
1	The request has been set up
2	The request has been sent
3	The request is in process
4	The request is complete
copy paste de w3schools

vamos la que nos interesa es la 4 que es cuando recivimos la respuesta.

Vamos a ver los parametros que le paso a la pagina.asp por GET

campo
valor

en dicha pagina tienes que hacer un:

Código:
select count(".$campo.") from tabla where ".$campo." like '".$valor."'
y si el resultado de esa select es 0 imprimir por pantalla: 'No existe' y en caso contrario 'Existe'.

Creo que con esto ya sabras llegar a la conclusion.

------------

PD: el NAME del input tiene que ser el mismo de la tabla de la BBDD.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan