Llenar campos automáticamente

Para hacer una consulta quiero ver si hay un script para que al momento de teclear la clave de empleado y quitar el "foco" del input se pusieran los demás campos. Esto, obviamente, si es que el empleado esta en la base de datos
(Conforme a su clave).

2 Respuestas

Respuesta
1
Hay una forma de hacerlo, que es usar el evento de pérdida de foco de javascript para provocar el envío del formulario. Tendrías que usar un código html similar al siguiente:
<form method='post' action='rellena.php' name='fo'>
Clave empleado: <input type='text' name='clave' onBlur='document.forms.fo.submit();'> <br>
<input type='submit' name='enviar' value='enviar'>
</form>
Como ves en ese código, cuando se pierde el foco del campo clave se provoca el envío del formulario a la página rellenar.php.
Respuesta
1
Lo que dices se puede hacer, pero yo no lo haría...
A ver si me explico:
Quieres que aparezca un formulario con datos de un usuario, y quieres que si el usuario mete su clave y esta es validad, directamente, sin recargar la página y por javascript se rellenen sus datos.
Si es esto lo que quieres se puede hacer. Al cargar la página puedes sacar los datos de todos los usuarios de la bbdd a un array javascript (que contiene objectos "usuario"). Al poner la clave, compruebas si alguno de los objetos del array tiene esa clave y en caso afirmativo pones los datos del objeto en el formulario.
¿Por qué no lo haría? creo que es obvio... ¿y si el usuario no es un usuario de la base de datos? ¿Y si ademas se le ocurre mirar el código fuente de la página y así ve todo el array de javascript con la información de todos los usuarios? Me parece un fallo de seguridad demasiado importante.
En su lugar, lo que yo haría es recargar la página pasando la clave introducida y con el lenguaje de servidor que uses (jsp, asp, php...), comprueba si esa clave esta en la bbdd y saca solo ese usuario en caso de que exista. Con ese usuario pones los datos en el formulario.
Espero haberme explicado. Si necesitas alguna explicación más, sigue preguntándome.
No hay tanto problema en cuanto a lo de seguridad, porque es un programa de inventario y solamente va a ser manejado internamente y la clave que debe introducir es para hacer una consulta sobre un empleado que haya hecho alguna petición de hardware. Se hace la petición de clave porque es una consulta individual, y si el empleado ha hecho algún pedido de hardware, se guarda en la base de datos con su clave de empleado, y al hacer la consulta se debe introducir la clave del empleado para checar si ha hecho algún pedido. En dado caso de que no haya hecho algún pedido no se pintan los datos y se le manda un mensaje de que no esta el empleado en la base de datos.
De todas formas, no solo por seguridad, sino por eficiencia. Date cuenta que cada vez que alguien entra a la página se va a sacar la información de todo el mundo...
Pero como quieras...
Si lo vas a hacer con javascript puedes hacer lo siguiente:
function objecto(dato1, dato2, dato3, ...){
this.dato1=dato1;
this.dato2=dato2;
this.dato3=dato3;
...
}
Esto es el constructor, ponle tantos campos como saques de la base de datos.
Después, con tu lenguaje de servidor saca los registros de la base de datos y por cada uno añades un objeto nuevo a un array de javascript:
var objetos = new Array();
var indice = 0;
<%
// LENGUAJE DE SERVIDOR
for(RECORRER LA LISTA DE REGISTROS){
%>
objetos[indice++] = new objeto('<%=dato1%>','<%=dato2%>','<%=dato3%>', ...);
<%}%>
Asi tendras el array lleno con los datos de la base de datos.
Despues hacer ls funcion que coteje el dato (supondre que es dato1):
function cotejar(clave){
var i = 0;
while(i<objetos.length){
if(objetos[i++].dato1==clave){
return objetos[i-1];
}
}
return null;
}
Y después puedes hacer la función que recogiendo ese objeto ponga los valores en el formulario...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas