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($query1, 0, 0);
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