Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2013, 21:10
FatsGordon
 
Fecha de Ingreso: mayo-2013
Mensajes: 10
Antigüedad: 11 años
Puntos: 0
Validación de campo de formulario 'on the fly'

Buenas!

Esta pregunta seguro que se ha hecho. De cualquier modo estuve googleando y las respuestas no son las que esperaba para mi caso particular.

Necesito validar durante la carga si un valor cargado en un campo existe o no. De no existir puede ser que haya sido mal cargado (volver al campo y cargarlo bien) o ser un nuevo valor (ingresarlo a la tabla).

He aquí el fragmento del código a validar:

En un formulario HTML

Código HTML:
 <label for="encuestador">Encuestador</label>
    <input name="encuestador" type="text" id="encuestador" onFocus="vaciar(this)" onKeyPress="return isNumberKey(this);" value="DNI" size="10" maxlength="8"> 
Código:
function valida_datos(){
    //valido el DNI
	encuestador = document.encuesta1.encuestador.value
	if (encuestador=="DNI" || encuestador==""){
		alert("Debe completar el DNI")
		document.encuesta1.encuestador.focus()
		return 0;
	}
El valor de encuestador es el que deseo validar contra la base de datos.

Normalmente si existiera sucedería lo siguiente:

Código PHP:
// Insercion de datos

$query1 mysql_query ("SELECT idencuestadores $IDENC FROM `enmodo`.`encuestadores` WHERE DNI = '$_POST[encuestador]'",$link);

$idenc mysql_result($query100);

mysql_query ("INSERT INTO `enmodo`.`hogares` (`PARTIDO`, `FRACCION`, `RADIO`, `HOGAR`, `LOCALIDA`, `encuestadores_idencuestadores`) VALUES ('$_POST[partido]', '$_POST[fraccion]', '$_POST[radio]', '$_POST[hogar]', '$_POST[hBarrio]', $idenc)",$link); 
Pero esto está en un formulario aparte, una vez que se validaron TODOS los campos y ya hice el submit.

¿Cómo hago para que la validación se de ANTES del submit, que envía a otro formulario? Porque si es un error de tipeo, como dije, tendría que retipearlo en el formulario original. Y si está bien y es nuevo, tendría que aceptarlo y grabarlo como un nuevo registro, puede que luego del submit (con alguna variable POST hidden que indique que va un dato nuevo de encuestador, se me ocurre...).

Si no fui claro por favor me avisan, en todo caso en lugar de pegar pedazos de código pongo los dos formularios (aunque me pareció más confuso hacerlo de ese modo).

Desde ya muchas gracias por la colaboración!

Un abrazo,

Alejandro