Foros del Web » Programando para Internet » PHP »

Php y Javascript validaciones?

Estas en el tema de Php y Javascript validaciones? en el foro de PHP en Foros del Web. Hola a todos. Saludos. Tengo un problema aún no resuelto y quisiera de todo corazón poder hacerlo con la ayuda de la comunidad del foro. ...
  #1 (permalink)  
Antiguo 03/03/2010, 06:54
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta Php y Javascript validaciones?

Hola a todos.
Saludos.
Tengo un problema aún no resuelto y quisiera de todo corazón poder hacerlo con la ayuda de la comunidad del foro.
Miren tengo un fichero html con un formulario compuesto por un formulario y una función javascript para que no se envien campos vacios. Es decir valida, por supuesto de el lado del cliente, que al presionar el botón enviar los controles del formulario todos estén llenos. Aquí les pongo el código del formulario:
Código HTML:
<html>
<head>
<title>Nuevo Cliente</title>
<style>
 
 
</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> 
Esto funciona perfectamente bien, de el lado del cliente, pueden coger el código y jecutarlo para que vean que funciona el tema de las validaciones de vada uno de los controles.
Como pueden apreciar en el atributo action tengo una página php (add_datos.php) que es la encargada de procesar el formulario y de insertar los registro correspondientes en una tabla de una base de datos mysql. Aquí les pongo dicha página php:
Código PHP:
<?php
// incluimos el archivo de conexion
include ('db_cnx.php');
// recibimos el formulario
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>";                       
}
}
?>
Cuando le doy a enviar no pasa nada, es decir se muestra una página en blanco, sin decir nada, voy a la base de datos a la tabla específica y los registros no se han adicionado, lo mas curioso del caso es que si quito la función javascript para la validación del lado del cliente todo funciona perfectamente bien sin ningún problema.
Me pregunto qué sucede aquí, qué falta, cuál es el error, debo de eliminar la validación de el lado del servidor, pues como abran visto en el código php también valido que no se envie ningún campo vacio, además que no se repita el código del cliente en cuyo caso me advierte.
Muchas Gracias.
  #2 (permalink)  
Antiguo 03/03/2010, 07:05
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Php y Javascript validaciones?

Quizás tendrías q haberlo puesto en el foro de javascript :O

Código PHP:
return true;
  
document.datos.submit ('add_datos.php'
Que pasa si quitas el return? o.O
  #3 (permalink)  
Antiguo 03/03/2010, 07:30
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Php y Javascript validaciones?

Gracias por tu respuesta.
Pero no te entendí.
A qué te refieres exactamente.
  #4 (permalink)  
Antiguo 03/03/2010, 07:32
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Php y Javascript validaciones?

si en vez de
Código:
return true;
  document.datos.submit ('add_datos.php')
pones
Código:
  document.datos.submit ('add_datos.php')
Tu problema era que el formulario no se enviaba, no? Lo leí de "pasada" :(
  #5 (permalink)  
Antiguo 03/03/2010, 08:12
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Php y Javascript validaciones?

Gracias por la molestia.
Ya encontré la solución.

Etiquetas: javascript, validar
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 21:57.