hola:
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>
comprobar_disponibilidad_de_apodo.js
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;
}
}
}
}
y
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();
}
}
?>
Lo que necesito hacer es que todo el proceso de validacion se encuentre en el archivo del formulario, si es posible hacerlo como se haria, ya que estoy muy verde es esto de ajax.
desde ya muchas gracias