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:
El valor de encuestador es el que deseo validar contra la base de datos.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; }
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);
¿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