Chicos me surgio una duda, quiero saber si me completaron todos los campos de un formulario de registro en php, que estos no tengan errores, y que no se haya enviado el formulario en principio. en dicho caso muestra el formulario
Se me ocurrio el tema de la cantidad de campos, con un count($_POST) === x donde x es la cantidad de campos del formulario, dado que POST es un vector, Es posible eso o me estoy mandando un moco al existir una funcion especifica para dicho fin?
Dejo parte del codigo
<head>
<meta charset="utf-8"/>
<meta lang="es"/>
<title> Registro </title>
<link rel="stylesheet" type="text/css" href="css/front_end/front-end.css"/>
</head>
<body>
<!-- SCRIPT -->
<script src="js/validaciones.js"></script>
<!-- Div contenedora de toda la pagina -->
<div class="general">
<!-- Div barra Superior -->
<div class="barra_superior">
<!-- Div buscador -->
<div class="buscador">
<label for="productoBuscar">Buscar Producto: </label>
<input type="text" name="productoabuscar" id="productoBuscar"/>
<!-- Selector de las categorias de la base -->
<label for="selcat"></label>
<select name="selcat" class="selectbuscador" id="selcat">
<option value="hogar">Hogar</option>
<option value="electrodomestico">Electrodomesticos</option>
<option value="deportes">Deportes</option>
<option value="construccion">Construcción</option>
</select>
<input type="button" id="sendsearch" value="buscar"/>
</div>
<!-- div links registrarse | loguin -->
<div class="reglog">
<a href="registro.php" >Registrarse </a>
<a href="login.html"> Ingresar </a>
</div>
<!-- div nombre de empresa + logo -->
</div>
<div class="nomempresa">
<a href="index.html">
<img src="imagenes/logo.png" class="logo" alt="logo" />
</a>
<p> VENTA DE PRODUCTOS </p>
</div>
<!-- contenedor menu izquierdo y datos -->
<div class="contenedor">
<div class="formulario_registro" >
<?php //Si no se envio el formulario, el mismo no tiene todos los campos del formulario cargados o hubo un error en el mismo. if(empty( $_POST ) || $errores === TRUE || ){ //Si no existe la variable global POST, es porque no se envio el formulario //Entonces Lo muestro ?>
<form action="registro.php" method="post" autocomplete="on" name="formReg">
<label for="frusuario">Ingrese su N° de usuario:</label>
<input type="number" name="Usuario" id="frusuario"/>
<label for="frpass">Password:</label>
<input type="password" name="pass" id="frpass"/>
<label for="frrepass">Repita su Password:</label>
<input type="password" name="repass" id="frrepass"/>
<label for="frname">Nombre:</label>
<input type="text" name="nombre" id="frname"/>
<label for="frape">Apellido: </label>
<input type="text" name="apellido" id="frape"/>
<label for="frcel">Teléfono</label>
<input type="text" name="telefono" id="frcel"/>
<label for="frcorreo">Correo Electronico</label>
<input type="email" name="email" id="frcorreo"/>
<input type="button" value="Enviar" onClick="validarRegistro()"/>
</form>
</div>
<?php } else{ //Si la variable superglobal $_POST existe quiere decir que js ya valido el formulario y sigo procesando ?>
</div>
</div>
MIL GRACIAS
Hola simchgab.
¿Has intentado probarlo?
Te dejo un pequeño ejemplo.
html con formulario:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Prueba form</title>
</head>
<body>
<form action="prueba.php" method="post">
Campo1: <input type="text" name="dato0"><br>
Campo1: <input type="text" name="dato1"><br>
Campo1: <input type="text" name="dato2"><br>
Campo1: <input type="text" name="dato3"><br>
Campo1: <input type="text" name="dato4"><br>
Campo1: <input type="text" name="dato5"><br>
<input type="submit">
</form>
</body>
</html>
php:
<html>
<head>
<meta charset="UTF-8">
<title>Prueba form</title>
</head>
<body>
<div>
<?php echo '$_POST contiene: ' . count($_POST) . " elementos. <br/><br/>"; echo count($_POST)===6; foreach ($_POST as $indice => $valor) { echo "<p>$indice : $valor</p>"; } ?>
</div>
</body>
</html>
Sobre $_POST puedes actuar como con cualquier otro array asociativo.
Saludos.