A ver prueba a hacerlo así. Así hago yo mis funciones y siempre me funcionan.
- No entiendo porque haces el delay ese en la función, yo lo quitaría para probar.
- Obviamente el fallo de la imagen es porque cada vez que levantas la tecla, se vuelve a poner la imagen.
Código Javascript
:
Ver original<script type="text/javascript">
$(document).ready(function(){
$("#usuarios").focus(function(){
$("#resultado").html('<img src="botones_img/ajax-loader.gif" />');
});
$("#usuarios").keyup(function(e){
var consulta = $("#usuarios").val();
if(consulta){
var datos = {
b:consulta
}
$.ajax({
type: "POST",
url: "comprobar.php",
data: datos ,
error: function(){
alert("error petición ajax");
},
success: function(data){
$("#resultado").html(data);
n();
}
});
}
});
});</script>
Código PHP:
Ver original<?php
if (is_file("Connections/conexion.php")) { require_once('Connections/conexion.php');
}else {
require_once('../Connections/conexion.php');
}
$user = $_POST['b'];
if($user) {
comprobar($user);
}else{
echo "No han llegado datos"
}
function comprobar($b) {
$con = mysql_connect($hostname_conexion, $username_conexion, $password_conexion); $sql = mysql_query("SELECT * FROM busuarios WHERE usuarios = '".$b."'",$con); if($contar == 0){
echo "<p>Disponible.</p>";
}else{
echo "<p>El nombre de usuario ya existe.</p>";
}
}
?>
Prueba con esto, debería de funcionarte seguro, en el PHP hemos añadido un aviso por si no llegasen datos desde la función javascript, pero si se esta ejecutando la petición.
A partir de ahí ve jugando con las opciones, si quieres que tenga un retraso por alguna cosa en concreta puede hacerse de alguna otra manera.