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.