Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/12/2005, 13:10
iarrieta
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 4 meses
Puntos: 0
Validar ESTE formulario...

Hola:

Por sugerencia de alguien en este mismo foro, note que mi formulario se puede enviar vacio.

Estoy tratando de validarlo antes de enviar pero como ya tiene un script php al hacer onclick, se me ha complicado.

Les pongo el codigo del formulario a ver si alguien me da una mano para validar "no vacio" los campos de texto (nombre, email) el select (contactar) y el campo de texto (mensaje)

El script que tengo en uso es de listas dependientes para pais y estado, con php y mysql

el archivo del formulario - contacto.php
Código HTML:
<form id="contacto" name="contacto" method="post" action=""> 
                        <table width="315" border="0" cellpadding="2"> 
                                    <tr> 
                                      <td><div align="left">Nombre</div></td> 
                                      <td>&nbsp;</td> 
                                      <td class="form"><div align="left"><? echo "<input name=\"nombre\" id=\"nombre\" type=\"text\" class=\"form\" value=\"$nombre\" size=\"30\">"; ?> *</div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="left">E-mail</div></td> 
                                      <td>&nbsp;</td> 
                                      <td class="form"><div align="left"><? echo "<input name=\"email\" id=\"email\" type=\"text\" class=\"form\" value=\"$email\" size=\"30\">"; ?> *</div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="left">Pa&iacute;s</div></td> 
                                      <td>&nbsp;</td> 
                                      <td class="form"><div align="left"> 
continua...
Código PHP:
<?  
// datos de conexion a la BD.  
$servidor "xxxxxx"// host  
$usuario "xxxxxx";  
$clave "xxxxxx";  
$basedatos "xxxxxx"// Indicar una Base de datos.  

// si se ha pulsao el boton enviar ($enviado) se procesa el formulario ..  
// Sino, se continua con el formulario y los nuevos valores de los Select ..  
// OJO si se tienen mas varibles (mas <input> ) se van a perder sus valores a no ser  
// que los obtengamos y se les de como valor inicial en el value= de cada uno segun corresponda.  

if (!empty($_POST['enviado'])){  

// Procesar el formulario ...  
echo "Procesando formulario:<br>";  
echo 
"Recibido id_tabla_padre: ".$_POST['id_padre']."<br>";  
echo 
"Recibido id_tabla_hija: ".$_POST['id_hija']."<br>";  
  

} else {  

// Conexi&oacute;n a la BD  
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error());  
mysql_select_db($basedatos$conexion) or die(mysql_error());  

// Obtener el $id_padre del envio a si mismo del formulario ..  
if(isset($_POST['id_padre'])){  
$id_padre=$_POST['id_padre'];  
}  

if(isset(
$_POST['id_hija'])){  
$id_hija=$_POST['id_hija'];  
}  

// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).  
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";  

// Formar Selec "Padre".  
echo "<select name=\"id_padre\" class=\"select\" onChange=\"this.form.submit()\">\n";  
echo 
"<option value=\"\"> Seleccione </option>\n";  

$SQLconsulta_padre="SELECT * FROM countries";  
$consulta_padre mysql_query($SQLconsulta_padre,$conexion) or die(mysql_error());  

While (
$registro_padre=mysql_fetch_assoc($consulta_padre )){  
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.  
// Se selecciona en consecuencia (selected) la opci&oacute;n elegida.  
if ($id_padre == $registro_padre['country_id']){  
echo 
"<option value=\"".$registro_padre['country_id']."\" selected>".$registro_padre['name']."</option>\n";  
} else {  
echo 
"<option value=\"".$registro_padre['country_id']."\">".$registro_padre['name']."</option>\n";  
}  
}  
echo 
"</select>\n\n";  

mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.?> 
                                      </div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="left">Regi&oacute;n</div></td> 
                                      <td>&nbsp;</td> 
                                      <td class="form"><div align="left"> 
                                          <? 
                        
// Formar Select "Hijo"  
echo "<select name=\"id_hija\" class=\"select\" onChange=\"this.form.submit()\">\n";  

// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo  
// se muestra el mensaje de "seleccine un item" (del select padre).  
if (!empty($id_padre)){  

$SQLconsulta_hija="SELECT * FROM states WHERE country_id='$id_padre'";  
$consulta_hija mysql_query($SQLconsulta_hija,$conexion) or die(mysql_error());  
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..  
if (mysql_num_rows($consulta_hija) != 0){  
While (
$registro_hija=mysql_fetch_assoc($consulta_hija)) {  
//echo "<option value=\"".$registro_hija['state_id']."\">".$registro_hija['name']."</option>\n";  
if ($id_hija == $registro_hija['state_id']){  
echo 
"<option value=\"".$registro_hija['state_id']."\" selected>".$registro_hija['name']."</option>\n";  
} else {  
echo 
"<option value=\"".$registro_hija['state_id']."\">".$registro_hija['name']."</option>\n";  
}  


}  
} else {  
echo 
"<option value=\"\"> no hay registros </option>";  
}  
} else {  
echo 
"<option value=\"\"> Seleccione primero el pa&iacute;s</option>";  
}  

mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.  


echo "</select>\n\n";  
  
}  
?>
continua...
Código HTML:
</div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="left">Contactar</div></td> 
                                      <td>&nbsp;</td> 
                                      <td><div align="left"> 
                                          <select name="contactar" class="select" id="contactar"> 
                                            <option value="null" selected="selected"> Seleccione </option> 
                                            <option value="[email protected]">Asistencia T&eacute;cnica</option> 
                                            <option value="[email protected]">Atenci&oacute;n al Cliente</option> 
                                            <option value="[email protected]">Mercadeo y Ventas</option> 
                                            <option value="[email protected]">Webmaster</option> 
                                          </select> 
                                      *</div></td> 
                                    </tr> 
                                    <tr> 
                                      <td><div align="left">Mensaje </div></td> 
                                      <td>&nbsp;</td> 
                                      <td><div align="left"> 
                                          <textarea name="mensaje" cols="38" rows="3" class="form" id="mensaje"></textarea> 
                                      *</div></td> 
                                    </tr> 
                                    <tr> 
                                      <td colspan="3"><div align="center"> 
                                          <input type="submit" name="Submit" class="boton" value="Enviar" onclick="this.form.action='mensaje.php'; this.form.submit()" /> 
                                      </div></td> 
                                    </tr> 
                                    </table> 
                              </form>