Foros del Web » Programando para Internet » Javascript »

Validar formulario

Estas en el tema de Validar formulario en el foro de Javascript en Foros del Web. Hola a todos. Saludos. Tengo un formulario en el cual valido que ninguno de los controles del mismo vayan a estar vacios cuando se le ...
  #1 (permalink)  
Antiguo 02/03/2010, 08:24
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Validar formulario

Hola a todos.
Saludos.
Tengo un formulario en el cual valido que ninguno de los controles del mismo vayan a estar vacios cuando se le de al botón enviar.
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Nuevo Cliente</title>
<style>
  input {
  width: 200px;
  font-family: Tahoma;
  font-size: 8pt;
  }
 
  .label {
width:50px;
  }
 
  textarea {
width: 200px;
  font-family: Tahoma;
  font-size: 8pt;
  }
   
  body {
font-family: Tahoma;
  font-size: 8pt;
  }

  .error {
  font-family: Tahoma;
font-size: 8pt;
  color: red;
  margin-left: 50px;
  display:none;
  }
 
</style> 
<script>
  function checkForm() {
name = document.getElementById("name").value;
  descripcion = document.getElementById("descripcion").value;  
  comprador = document.getElementById("comprador").value;
  seccomprador = document.getElementById("seccomprador").value;
  tercomprador = document.getElementById("tercomprador").value;
  forcomprador = document.getElementById("forcomprador").value;
  priident = document.getElementById("priident").value;
  segident = document.getElementById("segident").value;
  terident = document.getElementById("terident").value;
  forident = document.getElementById("forident").value;
 
  if (name == "") {
  hideAllErrors();
document.getElementById("nameError").style.display = "inline";
document.getElementById("name").select();
document.getElementById("name").focus();
  return false;
  } else if (descripcion == "") {
hideAllErrors();
document.getElementById("descError").style.display = "inline";
document.getElementById("descripcion").select();
document.getElementById("descripcion").focus();
  return false; 
  } else if (comprador == "") {
  hideAllErrors();
document.getElementById("compError").style.display = "inline";
document.getElementById("comprador").select();
document.getElementById("comprador").focus();
  return false;
  } else if (priident == "") {
  hideAllErrors();
document.getElementById("priidentError").style.display = "inline";
document.getElementById("priident").select();
document.getElementById("priident").focus();
  return false;
  } else if (seccomprador == "") {
  hideAllErrors();
document.getElementById("seccompError").style.display = "inline";
document.getElementById("seccomprador").select();
document.getElementById("seccomprador").focus();
  return false;
  } else if (segident == "") {
  hideAllErrors();
document.getElementById("segidentError").style.display = "inline";
document.getElementById("segident").select();
document.getElementById("segident").focus();
  return false;
  } else if (tercomprador == "") {
  hideAllErrors();
document.getElementById("tercompError").style.display = "inline";
document.getElementById("tercomprador").select();
document.getElementById("tercomprador").focus();
  return false;
  } else if (terident == "") {
  hideAllErrors();
document.getElementById("teridentError").style.display = "inline";
document.getElementById("terident").select();
document.getElementById("terident").focus();
  return false;
  } else if (forcomprador == "") {
  hideAllErrors();
document.getElementById("forcompError").style.display = "inline";
document.getElementById("forcomprador").select();
document.getElementById("forcomprador").focus();
  return false;
  } else if (forident == "") {
  hideAllErrors();
document.getElementById("foridentError").style.display = "inline";
document.getElementById("forident").select();
document.getElementById("forident").focus();
  return false;
  }
  return true;
  document.datos.submit ('add_datos.php')
  }
 
  function hideAllErrors() {
document.getElementById("nameError").style.display = "none"
document.getElementById("descError").style.display = "none"
document.getElementById("compError").style.display = "none"
document.getElementById("seccompError").style.display = "none"
document.getElementById("tercompError").style.display = "none"
document.getElementById("forcompError").style.display = "none"
document.getElementById("priidentError").style.display = "none"
document.getElementById("segidentError").style.display = "none"
document.getElementById("teridentError").style.display = "none"
document.getElementById("foridentError").style.display = "none"
  }
</script>
</head> 
<body>
<form name="datos" onSubmit="return checkForm();" method= "post" action="add_datos.php">
<span class=label>Código Cliente:</span><input type=text value="" id=name name="co_id"><br>
<div class=error id=nameError>Requerido: Código del Cliente<br></div><br>
<span class=label>Descripción del Cliente:</span><input type=text value="" id=descripcion name="co_nombre" /><br>
<div class=error id=descError>Requerido: Descripción del Cliente<br></div><br>
<span class=label>1<sup>er</sup>Comprador:</span><input type=text value="" id=comprador name="comprador1"><br>
<div class=error id=compError>Requerido: Nombre del 1<sup>er</sup>Comprador<br></div><br>
<span class=label>1<sup>er</sup>No. de Identidad:</span><input type=text value="" id=priident name="identidad1"><br>
<div class=error id=priidentError>Requerido: No. de Identidad<br></div><br>
<span class=label>2<sup>do</sup>Comprador:</span><input type=text value="" id=seccomprador name="comprador2"><br>
<div class=error id=seccompError>Requerido: Nombre del Comprador<br></div><br>
<span class=label>2<sup>do</sup>No. de Identidad:</span><input type=text value="" id=segident name="identidad2"><br>
<div class=error id=segidentError>Requerido: No. de Identidad<br></div><br>
<span class=label>3<sup>er</sup>Comprador:</span><input type=text value="" id=tercomprador name="comprador3"><br>
<div class=error id=tercompError>Requerido: Nombre del Comprador<br></div><br>
<span class=label>3<sup>er</sup>No. de Identidad:</span><input type=text value="" id=terident name="identidad3"><br>
<div class=error id=teridentError>Requerido: 3<sup>er</sup>No. de Identidad<br></div><br>
<span class=label>4<sup>to</sup>Comprador:</span><input type=text value="" id=forcomprador name="comprador4"><br>
<div class=error id=forcompError>Requerido: 4<sup>to</sup>Nombre del Comprador<br></div><br>
<span class=label>4<sup>to</sup>No. de Identidad:</span><input type=text value="" id=forident name="identidad4"><br>
<div class=error id=foridentError>Requerido: 4<sup>to</sup>No. de Identidad<br></div><br>
<input type=submit value=Enviar style="margin-left: 50px">
</form>
</body>
</html> 
Ese es el formulario completico.
Esto funciona perfectamente bien. El problema está que cuando le doy al botón enviar, si se fijan tengo puesto en el atributo action una página php con el siguiente código:
Código PHP:
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar')
{
  
// comprobamos que el formulario no envie campos vacios
  
if(!empty($_POST['co_id']) && $_POST['co_nombre'] &&
   
$_POST['comprador1'] && $_POST['identidad1'] && $_POST['comprador2'] && $_POST['identidad2'] &&$_POST['comprador3'] && $_POST['identidad3'] && $_POST['comprador4'] && $_POST['identidad4'])
    {
      
$busqueda mysql_query("SELECT co_id FROM comercios WHERE co_id='$co_id'");  
      if(
mysql_num_rows($busqueda)>0
       { 
// ó " !=0 " como se quiera ver 
         // Inciso a:  
         
echo "Está empresa ya existe. Por favor intente con otro cliente.<br>"
         echo 
"<a href=\"javascript:history.back()\">Regresar</a>"
       } 
        else
       { 
         
// Inciso b:
        // creamos la variable y le asignamos el valor a insertar
       // Paso 1: Recibimos el formulario:       
          
$co_id $_POST['co_id'];
          
$co_nombre $_POST['co_nombre'];
          
$comprador1 $_POST['comprador1'];
          
$identidad1 $_POST['identidad1'];
          
$comprador2 $_POST['comprador2'];
          
$identidad2 $_POST['identidad2'];    
          
$comprador3 $_POST['comprador3'];
          
$identidad3 $_POST['identidad3'];
          
$comprador4 $_POST['comprador4'];
          
$identidad4 $_POST['identidad4'];  
       
// insertamos registros a la base de datos
          
$sqlInserDat mysql_query("INSERT INTO comercios (co_id, co_nombre, comprador1, identidad1, comprador2, identidad2, comprador3, identidad3, comprador4, identidad4)
          VALUES ('$co_id', '$co_nombre', '$comprador1', '$identidad1', '$comprador2', '$identidad2', '$comprador3', '$identidad3', '$comprador4', '$identidad4')"
$db_link)
          or die(
mysql_error());
       
// enviamos un mensaje de exito
          
echo "Los datos fueron guardados correctamente";  
    }      
    }else{
  
// si el formulario viene vacio
  //enviamos un mensaje de error
    
echo "El formulario tiene campos vacios, debe llenar el formulario.<br>"
    echo 
"<a href=\"javascript:history.back()\">Regresar</a>";                       
}
}
?> 
No pasa nada, es decir no se adiciona ningún valor a la tabla mysql.
Realmente no sé porqué sucede eso. Si es que debo agregar algún código javascrip a la página php o si debo quitar la validacíon de la página php.
Si quito el código javascript del formulario html, es decir si quito la validación del lado del cliente, todo funciona perfectamente bien.
No sé por qué.
De veras agradecería cualquier ayuda o solución al tema.
Muchas Gracias.
  #2 (permalink)  
Antiguo 02/03/2010, 10:26
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: Validar formulario

mmmm, tienes errores como:

id=name??? no entender...
<input type=text value="" id=name name="co_id">

id=descripcion??? debes agregar las comillas dobles...
<input type=text value="" id=descripcion name="co_nombre" />

type=text o type="text"
<input type=text value="" id=forident name="identidad4">

value=Enviar?? o value="Enviar"
<input type=submit value=Enviar style="margin-left: 50px">


entre cada condicion del fichero .php has impresiones para ver hasta que punto llega la validación...

empieza por lo del formulario...
__________________
blog: hector2c.wordpress.com
email: [email protected]

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:15.