Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2010, 08:53
kain_raziel
 
Fecha de Ingreso: junio-2009
Mensajes: 45
Antigüedad: 15 años, 4 meses
Puntos: 1
Pregunta Validar Username??

Bueno una vez más pido de su ayuda para realizar algo que lo mas segura es sencillo la vdd soy nuevo con esto de ajax y no se muy bien como este la onda aun pero el chiste es hacer prueba y error para que todo quede bien .

El asunto que me trae al foro es el siguiente tengo un registro de usuarios en donde valido con un botón el nombre de usuario que ingresen antes de registrarse para ver si no esta en uso si es así muestra un mensaje de error informándole al usuario que ya existe dicho nombre. Ahora bien lo que quiero lograr es que esto lo valide automáticamente cuando ingresen su nombre de usuario sin necesidad de tener que pulsar dicho botón.

Aquí les pongo el código con el cual hago dicho proceso haber si me pueden echar una mano con esto:

Archivo de conexión comprobarUser.php:

Código PHP:
<?php
$hostname_conn 
"localhost";
$database_conn "servidor";
$username_conn "user";
$password_conn "pass";
$conn mysql_pconnect($hostname_conn$username_conn$password_conn) or trigger_error(mysql_error(),E_USER_ERROR); 

$colname_rs_user "-1";
if (isset(
$_POST['username'])) {
  
$colname_rs_user $_POST['username'];
}
mysql_select_db($database_conn$conn);
$query_rs_user sprintf("SELECT * FROM usuarios WHERE username = '%s'",$colname_rs_user);
$rs_user mysql_query($query_rs_user$conn) or die(mysql_error());
$row_rs_user mysql_fetch_assoc($rs_user);
$totalRows_rs_user mysql_num_rows($rs_user);
if(
$totalRows_rs_user == 0)
{
    echo 
'<div align="center" class="ok">Nombre de usuario Disponible';
}
else{
    echo 
'<div align="center" class="error">Nombre de usuario Ocupado';
}
?>
<?php 
mysql_free_result
($rs_user);
?>
Formulario new_user.php:
Código HTML:
<script type="text/javascript" language="javascript" src="ajax.js">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//-->
</script>

<div align="center">REGISTRO DE USUARIO</div>
        <form action="<?php echo $editFormAction; ?>" method="post" name="formUsuario" id="formUsuario">
          <table align="center">
        <tr valign="baseline">
          <td nowrap="nowrap" align="right">&nbsp;</td>
          <td><div id="estadoUser"></div></td>
          <td>&nbsp;</td>
          </tr>
            <tr valign="baseline">
              <td nowrap="nowrap" align="right">Nombre de usuario:</td>
              <td><input name="username" type="text" id="username" value="" size="32" /></td>
              <td><input name="button" type="button" class="style4" id="button" value="Comprobar" onclick="javascript:ComprobarUsuario('./comprobarUser.php','estadoUser')" /></td>
            </tr>
            <tr valign="baseline">
              <td nowrap="nowrap" align="right">Contraseña:</td>
              <td><input name="password" type="password" id="password" value="" size="32" /></td>
              <td>&nbsp;</td>
            </tr>
<tr valign="baseline">
              <td nowrap="nowrap" align="right">&nbsp;</td>
              <td><input type="submit" class="style4" onclick="MM_validateForm('username','','R','password');return document.MM_returnValue" value="REGISTRAR" /></td>
              <td>&nbsp;</td>
            </tr>
          </table>
<input type="hidden" name="MM_insert" value="formUsuario" />
      </form> 

Archivo AJAX
ajax.js:
Código Javascript:
Ver original
  1. function getXMLHttpRequest(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18.  
  19. function TraerPagina(datos,contenedor){
  20.     divResultado = document.getElementById(contenedor);
  21.     ajax=getXMLHttpRequest();
  22.     ajax.open("GET", datos);
  23.     ajax.onreadystatechange=function(){
  24.     if(ajax.readyState==1)
  25.         {divLoader.innerHTML='<center><img widht="50" height="50" src="./images/loading.gif"/><br/>Cargando...</center>'}
  26.         else{
  27.             if(ajax.readyState==4){divResultado.innerHTML=ajax.responseText;divLoader.innerHTML=''}
  28.             }
  29.         }
  30.     ajax.send(null)
  31. }
  32.  
  33. function ComprobarUsuario(datos,contenedor){
  34.     divResultado = document.getElementById(contenedor);
  35.     username_=document.formUsuario.username.value;
  36.     if (username_ != ""){
  37.     ajax=getXMLHttpRequest();
  38.     ajax.open("POST", datos);
  39.     ajax.onreadystatechange=function(){
  40.     if(ajax.readyState==1)
  41.         {divResultado.innerHTML='<center><img widht="50" height="50" src="./images/loading.gif"/><br/>Cargando...</center>'}
  42.         else{
  43.             if(ajax.readyState==4)
  44.             {divResultado.innerHTML=ajax.responseText;}
  45.             }
  46.         }
  47.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  48.     //enviando los valores
  49.     ajax.send("username="+username_);
  50.     }else{
  51.         divResultado.innerHTML='<div style="background-color:#FFAAAA"><span style="color:#999999", style="font-family:Calibri", style="font-weight:bold", style="font-size:12px">Desbes ingresar un Nombre de usuario.</b></span></div>'
  52.     }
  53. }
Bueno el asunto es que con estos tres archivos hago el proceso que les menciono espero que alguien me pueda ayudar con esto.