Foros del Web » Programando para Internet » PHP »

Como validar un array vacio

Estas en el tema de Como validar un array vacio en el foro de PHP en Foros del Web. Hola, buenas tardes, acudo a ustedes porque ya vi en varios temas de aqui mismo y otras webs, como validar si elementos de un array ...
  #1 (permalink)  
Antiguo 11/05/2015, 17:00
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 10 meses
Puntos: 1
Exclamación Como validar un array vacio

Hola, buenas tardes, acudo a ustedes porque ya vi en varios temas de aqui mismo y otras webs, como validar si elementos de un array esta vacio, y no se muy bien como ponerlo en practica, creo que se puede hacer con foreach o con array_filter. Les explico, tengo un formulario para generar un nuevo usuario en un sistema que estoy haciendo, entonces recibo primero cada campo por separado con $_POST y luego hago lo siguiente

Código PHP:
if(empty($nombre) OR empty($ubicacion) OR empty($gerente) OR empty($telefonos)){
if(empty(
$nombre)){
      
header("Location: inicio.php?v=nueva&empty=nombre");
     }
     if(empty(
$ubicacion)){
      
header("Location: inicio.php?v=nueva&empty=ubicacion");
     }
     if(empty(
$gerente)){
      
header("Location: inicio.php?v=nueva&empty=gerente");
     }
     if(empty(
$telefonos)){
      
header("Location: inicio.php?v=nueva&empty=telefono");
     }

Al hacer eso, regresa al fomulario y muestra un mensaje de error indicando que campo esta vacio, pero si son varios campos los que estan vacios, muestra un solo mensaje de error y quiero que muestre todos los mensajes de rror de los campos vacios, entonces meto todos esos valores en un array

Código PHP:
$comprobacion= ['nombre' => $nombre'ubicacion' => $ubicacion'gerente' => $gerente'telefono' => $telefonos]; 
Pero ya de ahi no se bien como comprobar cuales llaves estan vacias y que redireccione a el formulario con la liga en automatico de las variables que estan vacias, espero puedan ayudarme
  #2 (permalink)  
Antiguo 11/05/2015, 20:02
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Como validar un array vacio

Podrias hacer algo asi, mandar a inicio.php por GET todas las variables que estan vacias...
Código PHP:
Ver original
  1. $comprobacion = array('nombre' => '', 'ubicacion' => '', 'gerente' => '', 'telefono' => '');
  2.  
  3. foreach ($comprobacion as $k => $v) {
  4.  
  5.   if (isset($_POST[$k]) && !empty($_POST[$k])) {
  6.     unset($comprobacion[$k]);
  7.   }
  8.  
  9. }
  10. header("Location: inicio.php?".http_build_query($comprobacion));


Igualmente creo que sería mejor no hacer la redireción, sino que ahi mismo mostrar el formulario nuevamente y completarlo con los datos que ha ingresado el usuario, porque sino debe volver a cargar todo nuevamente
  #3 (permalink)  
Antiguo 12/05/2015, 11:52
 
Fecha de Ingreso: enero-2012
Mensajes: 55
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Como validar un array vacio

Cita:
Iniciado por truman_truman Ver Mensaje
Podrias hacer algo asi, mandar a inicio.php por GET todas las variables que estan vacias...
Código PHP:
Ver original
  1. $comprobacion = array('nombre' => '', 'ubicacion' => '', 'gerente' => '', 'telefono' => '');
  2.  
  3. foreach ($comprobacion as $k => $v) {
  4.  
  5.   if (isset($_POST[$k]) && !empty($_POST[$k])) {
  6.     unset($comprobacion[$k]);
  7.   }
  8.  
  9. }
  10. header("Location: inicio.php?".http_build_query($comprobacion));


Igualmente creo que sería mejor no hacer la redireción, sino que ahi mismo mostrar el formulario nuevamente y completarlo con los datos que ha ingresado el usuario, porque sino debe volver a cargar todo nuevamente

Hola, gracias por responder, si fue lo que me falto especificar en el problema, lo siento, al yo hacer el redireccionamiento, recibo las variables con $_GET en el formulario, y segun las variables que se reciben, es el mensaje de error que aparece, algo asi:

entonces supongamos que es verdadera la condicion
valida.php
Código PHP:
$nombre=$_POST['nombre'];
if(empty(
$nombre)){ 
      
header("Location: inicio.php?v=nueva&empty=nombre"); 
     } 
Entonces al hacer el redireccionamiento en el formulario
Código PHP:
if($empty=$_GET['empty']){
  if(
$empty=="nombre"){
echo 
"El campo nombre" no puede estar vacio;
}

Eso pasa dentro del formulario, despues de validar cuales son los campos que estan vacios con el primer codigo, a lo que necesito es que se manden todas las variables vacias en la url para recibirlas y mostrarlas, por el codigo que me muestras, supongo que puede ser de la siguiente forma?

valida.php
Código PHP:
$comprobacion= ['nombre' => $nombre'ubicacion' => $ubicacion'gerente' => $gerente'telefono' => $telefonos];
foreach (
$comprobacion as $k => $v) {
 
  if (!empty(
$k)) {
    unset(
$comprobacion[$k]);
  }
  
}
header("Location: inicio.php?v=nueva&empty".http_build_query($comprobacion)); 
No se si estoy bien o si me doy a entender bien, jeh siento que estoy explicando de una forma rara

Etiquetas: formulario, vacio, variable
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 20:18.