La menera mas sencilla de implementarlo es usar jQuery ya que te va a simplificar mucho el código. Me aburro un poco asi que te he montado un ejemplo usando JSON.
index.html<!doctype html>
<form action="" method="POST"> <input type="text" id="nombre" name="nombre" value="" placeholder="Nombre.." /> <input type="text" id="direccion" name="direccion" value="" placeholder="Dirección.." /> <input type="text" id="telefono" name="telefono" value="" placeholder="Teléfono..." /> <div id="estado">Esperando input.
</div> <!-- Scripts -->
cliente.js$(function(){
/* Ponemos evento blur a la escucha sobre id nombre en id cliente. */
$('#cliente').on('blur','#nombre',function(){
/* Obtenemos el valor del campo */
var valor = this.value;
/* Si la longitud del valor es mayor a 2 caracteres.. */
if(valor.length>=3){
/* Cambiamos el estado.. */
$('#estado').html('Cargando datos de servidor...');
/* Hacemos la consulta ajax */
var consulta = $.ajax({
type:'POST',
url:'cliente.php',
data:{nombre:valor},
dataType:'JSON'
});
/* En caso de que se haya retornado bien.. */
consulta.done(function(data){
if(data.error!==undefined){
$('#estado').html('Ha ocurrido un error: '+data.error);
return false;
} else {
if(data.telefono!==undefined){$('#cliente #telefono').val(data.telefono);}
if(data.direccion!==undefined){$('#cliente #direccion').val(data.direccion);}
$('#estado').html('Datos cargados..');
return true;
}
});
/* Si la consulta ha fallado.. */
consulta.fail(function(){
$('#estado').html('Ha habido un error contactando el servidor.');
return false;
});
} else {
/* Mostrar error */
$('#estado').html('El nombre tener una longitud mayor a 2 caracteres...');
return false;
}
});
});
cliente.php<?php
if(!empty($_POST['nombre'])){
$nombre = $_POST['nombre'];
if($nombre==='juan'){
$return = array('telefono'=>'611611611','direccion'=>'Una calle que no existe, Madrid'); } elseif($nombre=='maria') {
$return = array('telefono'=>'666666666','direccion'=>'call del diablo, Pais de las maravillas'); } else {
$return = array('error'=>'El nombre no esta guardado en la base de datos'); }
}
?>
Obviamente la idea es cargar los datos de la BD en vez de utilizar simples IF's pero te haces una idea... es meter en un array telefono y direccion y hacer que el script muera (die) imprimiendo el array convertido en json (json_encode).
Links sobre el tema:
jQuery -
http://jquery.com/jQuery ajax -
http://api.jquery.com/jQuery.ajax/PHP json_encode -
http://www.php.net/json_encodeSaludos