Hola a todos, quiero validar dos campos, anda muy bien , el tema es que una vez validado no me manda al post...
dejo mi form_
<form action="PrimerPost.php" method="POST" enctype="multipart/form-data" id="form">
<div class="container fondo">
<div class="row">
<div class="mb-3 fondo">
<label class="form-label"><b>Nombre Completo</b></label>
<input type="tetx" class="form-control" id="name" name="cl_NomCompleto" placeholder="Nombre Completo">
</div>
<div class="mb-3">
<label class="form-label"><b>DNI</b></label>
<input type="text" class="form-control" id="cldne" name="cl_DnIE" placeholder="Su DNI">
</div>
<br>
<br>
</div>
<button type="submit" type="button" class="btn btn-success">Seguir</button>
<p class="warnings" id="warnings"></p>
</form>
<br>
<script src="publicar.js"></script>
y el código de validación con JavaScript.
const nombre = document.getElementById("name")
const cldne = document.getElementById("cldne")
const form = document.getElementById("form")
const parrafo =document.getElementById("warnings")
form.addEventListener("submit", e=>{
e.preventDefault()
let warnings =""
parrafo.innerHTML=""
if(nombre.value.length <4){
warnings +=`El nombre es muy corto <br>`
entrar= true
}
if(cldne.value.length<8){
warnings +=`El nombre es muy corto <br>`
entrar= true
}
if(entrar){
parrafo.innerHTML= warnings
}else{
//this.submit();
//document.forms.submit();
$form.submit();
}
})
Posrqie no manda a "PrimerPost.php" .....
Sinceramente no lo se hacer , lo he sacado de youtube y anda bien pero no se encvia el form... :(
Gracias nuevamente !
Saludos
rebe
Hola Rebe como andas?
Tenes el archivo PrimerPost.php?
Hola, reemplaza "$form.submit();" por "e.currentTarget.submit();" y nos cuentas.
Saludos.
Hola Disculpen la demora al contestar, ...
el archivo .primerpost.php es:
session_start();
include("../config.php");
$cone=conectar();
$ClEmail =$_SESSION['email'];
$ClNomCompleto = $_POST['ClNomCompleto'];
$ClDnIE = $_POST['ClDnIE'];
$duplicado="";
if($ClNomCompleto === '' || $ClDnIE=== ''){/*COMPROBAMOS QUE LOS DATOS NO LLEGUEN NULOS */
header("Location:../iniedenind.php");
}
/* COMPROBAMOS QUE EL EMAIL NO ESTE DUPLICADO */
$registros=mysqli_query($cone,"SELECT ClDnIE FROM alumnos WHERE ClDnIE='$ClDnIE'") or die("Problemas en el select:".mysqli_error($cone));
while ($reg=mysqli_fetch_array($registros)){ /* PRIMER WHILE */
echo $duplicado=$reg['ClDnIE'];
}//echo "email duplicado";
if($duplicado==$ClDnIE){
header('Location:PrFormA.php?VaDup="Y"');
}else{
$registros=mysqli_query($cone,"SELECT user_id FROM users WHERE email='$ClEmail'") or die("Problemas en el select:".mysqli_error($cone));
while ($reg=mysqli_fetch_array($registros)){ /**SEGUNDO WHILE */
$id_alumnos=$reg['user_id'];
}
$query = "INSERT INTO alumnos (ClNomCompleto,ClDnIE,ClEmail) VALUES ('$ClNomCompleto','$ClDnIE','$ClEmail')";
$res = mysqli_query($cone, $query);
$publico="SIP";
$query = "UPDATE users SET UserPubli='$publico' WHERE email='$ClEmail'";
$res = mysqli_query($cone, $query);
header('Location:SeFormB.php');
}
?>
Ahora modifique el script , como no me anduvo hice lo siguiente.:
<script>
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("formulario").addEventListener('submit', validarFormulario);
});
function validarFormulario(evento) {
evento.preventDefault();
var usuario = document.getElementById('clN').value;
if(usuario.length == 0) {
swal("Nombre Vacio");
//alert('No has escrito nada en el usuario');
return;
}
var clave = document.getElementById('clE').value;
if (clave.length < 8) {
swal("Faltan Numeros");
// alert('La clave no es válida');
return;
}
this.submit();
}
</script>
Lo que me molesta y creo que a varios, son ventanas emergentes ... en lo personal me molestan.. prefiero un div de error .. pero no un "alert"
Tampoco se pintarlo en la pagina html, este ultimo una vez que valida si pasa a primer post.php
Estoy viendo muchos videos de javascript... pero en los videos es como que siempre si olvidan de algo... :)
Gracias todos,
Saludos
ReB.
Solucionado.!!
Saludos a todos.
rebe