en internet encontre los siguientes codigos:
comprobar_disponibilidad_de_apodo.php
Código PHP:
   <html lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>AJAX, Ejemplos: Comprobar la disponibilidad/existencia de un apodo - ejemplo</title>
<link rel="stylesheet" type="text/css" href="comprobar_disponibilidad_de_apodo.css">
<script type="text/javascript" src="comprobar_disponibilidad_de_apodo.js"></script>
</head>
 
<body>
            
            <div id="demo" style="width:600px;">
                <div id="demoDer">
                    <input type="text" id="verificacion">
                    <button type="button" id="botonVerificacion" onclick="nuevoEvento('verificacion')">Comprobar</button>
                </div>
                <div id="demoIzq">
                    <input type="text" id="ingreso">
                    <button type="button" id="botonIngreso" onclick="nuevoEvento('ingreso')">Ingresar</button>
                </div>
                <div class="mensaje" id="error"></div>
            </div>
            
</body>
</html> 
   Código PHP:
   function nuevoAjax()
{ 
    /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
    lo que se puede copiar tal como esta aqui */
    var xmlhttp=false; 
    try 
    { 
        // Creacion del objeto AJAX para navegadores no IE
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(e)
    { 
        try
        { 
            // Creacion del objet AJAX para IE 
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(E) { xmlhttp=false; }
    }
    if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 
 
    return xmlhttp; 
}
 
function eliminaEspacios(cadena)
{
    // Funcion equivalente a trim en PHP
    var x=0, y=cadena.length-1;
    while(cadena.charAt(x)==" ") x++;    
    while(cadena.charAt(y)==" ") y--;    
    return cadena.substr(x, y-x+1);
}
 
function validaIngreso(valor)
{
    /* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser 
    valido, FALSE en caso contrario */
    var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
    if(reg.test(valor)) return true;
    else return false;
}
 
function nuevoEvento(evento)
{
    // Obtengo el div donde se mostraran las advertencias y errores
    var divMensaje=document.getElementById("error");
 
    /* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
    distintas variables */    
    if(evento=="ingreso")
    {
        var input=document.getElementById("ingreso");
        // Boton presionado
        var boton=document.getElementById("botonIngreso");
        // Valor ingresado por el usuario
        var valor=input.value;
        // Texto a colocar en el input mientras se esta cargando la respuesta del servidor
        var textoAccion="Ingresando...";
    }
    else
    {
        var input=document.getElementById("verificacion");
        // Boton presionado
        var boton=document.getElementById("botonVerificacion");
        // Valor ingresado por el usuario
        var valor=input.value;
        // Texto a colocar en el input mientras se esta cargando la respuesta del servidor
        var textoAccion="Comprobando...";
    }
    // Elimino espacios por delante y detras de lo ingresado por el usuario
    valor=eliminaEspacios(valor);
    // Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
    if(!validaIngreso(valor)) 
    {
        divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inválida";
    }
    else
    {
        // Deshabilito inputs y botones para evitar dobles ingresos
        boton.disabled=true; input.disabled=true;
        input.value=textoAccion;
        
        // Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
        var ajax=nuevoAjax();
        ajax.open("POST", "comprobar_disponibilidad_de_apodo_proceso.php", true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        ajax.send(evento+"="+valor);
        
        ajax.onreadystatechange=function()
        {
            if (ajax.readyState==4)
            {
                // Habilito nuevamente botones e inputs
                input.value="";
                boton.disabled=false; input.disabled=false;
                // Muestro el mensaje enviado desde el servidor
                divMensaje.innerHTML=ajax.responseText;
            }
        }
    }
} 
    comprobar_disponibilidad_de_apodo_proceso.php
Código PHP:
   <?php
include 'conexion.php';
 
function validaIngreso($valor)
{
    // Funcion utilizada para validar el dato a ingresar recibido por POST
    if(eregi("^[a-zA-Z0-9.@ ]{4,40}$", $valor)) return TRUE;
    else return FALSE;
}
 
function verificaExistencia($apodo)
{
    /* Funcion encargada de verificar la existencia del apodo recibido en base de datos.
    Devuelve TRUE si el apodo existe, FALSE de lo contrario */
    $consulta=mysql_query("SELECT id FROM apodos WHERE apodo='$apodo'") or die(mysql_error());
    $registro=mysql_fetch_row($consulta);
    
    if(!empty($registro)) return TRUE;
    else return FALSE;
}
 
if(isset($_POST["ingreso"]))
{
    // Quito espacios en blanco al comienzo y fin de la cadena
    $valor=trim($_POST["ingreso"]);
    // Si el valor recibido es valido...
    if(validaIngreso($valor))
    {
        conectar();
        
        $consulta=mysql_query("SELECT COUNT(*) FROM apodos") or die(mysql_error());
        $registro=mysql_fetch_row($consulta);
 
        // Verifico que la base de datos no rebase los 600 registros (numero arbitrario)
        if($registro[0]>=600) { echo "Hay demasiados registros en la Base de Datos"; die(); }
        
        // Si el apodo ya existe en base de datos...
        if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos";
        else 
        {
            // Ingreso el nuevo apodo
            mysql_query("INSERT INTO apodos (apodo) VALUES ('$valor')") or die(mysql_error());
            echo "Tu apodo ha sido ingresado";
        }
        desconectar();
    }
}
elseif(isset($_POST["verificacion"]))
{
    // Quito espacios en blanco al comienzo y fin de la cadena
    $valor=trim($_POST["verificacion"]);
    // Si el valor recibido es valido...
    if(validaIngreso($valor))
    {
        conectar();
        // Si el apodo ya existe en base de datos...
        if(verificaExistencia($valor)) echo "Tu apodo ya existe en la base de datos";
        else echo "Apodo disponible";
        desconectar();
    }
}
?>    desde ya muchas gracias
 
