Ver Mensaje Individual
  #23 (permalink)  
Antiguo 04/08/2011, 19:40
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 1 mes
Puntos: 65
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Hola de nuevo vgonga1986. He probado siguiendo tus consejos con los 4 if y no lo consigo, incluso probando con 3 tampoco encuentro el error, ahora lo pego abajo.



Hola de nuevo New, con tu opción me hace las validaciones posibles sin embargo hay casos que no controlo, por ejemplo que check1 este marcado y correcto pero check2 marcado y mal, me avisa uno a uno de lo que falta pero claro luego para hacer el envio me haría falta otra condición.



He probado siguiendo el anterior ejemplo solo con 3 opciones de la siguiente manera:

Código PHP:
Ver original
  1. // Si existe check 11, check12 y check 20
  2.     if (isset($_POST['check11']))
  3.     {
  4.         if (isset($_POST['check12']))
  5.         {
  6.             if (isset($_POST['check20']))
  7.             {
  8.                 // Si las condiciones 1, 2 y 3 se cumplen
  9.                 if ($cond1 && $cond2 && $cond3)
  10.                 {
  11.                 echo "CORRECTO: check11 marcado y completo. check12 marcado y completo, check 20 marcado y completo.";
  12.                 }
  13.                 else
  14.                 {
  15.                 echo "ERROR: se marcó algún check y no se rellenó su campo.";
  16.                 }
  17.             }
  18.         }
  19.     //}
  20.     // Si check11 está marcado
  21.     elseif (isset($_POST['check11']))
  22.     {
  23.         if ($cond1)
  24.         {
  25.         echo "CORRECTO: check11 marcado y completo.";
  26.         }
  27.         else
  28.         {
  29.         echo "ERROR: check11 marcado pero vacio e Incompleto.";
  30.         }
  31.     //Cierro las opciones de check11
  32.     }
  33.     //Cierro las opciones del primer if
  34.     }  
  35.     //--------------------------------------
  36.     // Si check12 está marcado
  37.     elseif (isset($_POST['check12']))
  38.     {
  39.         if ($cond2)
  40.         {
  41.         echo "CORRECTO: check12 marcado y completo.";
  42.         }
  43.         else
  44.         {
  45.         echo "ERROR: check12 marcado pero vacio o Incompleto.";
  46.         }      
  47.     }
  48.     //----------------------------------
  49.     // Si check20 está marcado y los demás no
  50.     elseif (isset($_POST['check20']))
  51.     {
  52.         if ($cond3)
  53.         {
  54.         echo "CORRECTO: check20 marcado y completo.";
  55.         }
  56.         else
  57.         {
  58.         echo "ERROR: check20 marcado pero vacio o Incompleto.";
  59.         }      
  60.     }
  61.     // si check11, check12 y check20 están vacios  
  62.     else
  63.     {      
  64.         echo "INCORRECTO: check11 y check12 y check 20 no están marcados.";
  65.     }

Tampoco va... ya que si solo tengo dos opciones de las 3 posibles marcadas y una mal no me dice del error que debería.

¿Sigo poniendo mal las condiciones?

Si solo lo hago con dos va correctamente:

Código PHP:
Ver original
  1. if (isset($_POST['check11']))
  2.     {
  3.         if (isset($_POST['check12']))
  4.         {
  5.            
  6.                 // Si las condiciones 1, 2 y se cumplen
  7.                 if ($cond1 && $cond2 && $cond3)
  8.                 {
  9.                 echo "CORRECTO: check11 marcado y completo. check12 marcado y completo.";
  10.                 }
  11.                 else
  12.                 {
  13.                 echo "ERROR: se marcó algún check y no se rellenó su campo.";
  14.                 }
  15.            
  16.         }
  17.     //}
  18.     // Si check11 está marcado
  19.     elseif (isset($_POST['check11']))
  20.     {
  21.         if ($cond1)
  22.         {
  23.         echo "CORRECTO: check11 marcado y completo.";
  24.         }
  25.         else
  26.         {
  27.         echo "ERROR: check11 marcado pero vacio e Incompleto.";
  28.         }
  29.     //Cierro las opciones de check11
  30.     }
  31.     //Cierro las opciones del primer if
  32.     }  
  33.     //----------------------------------

pero en el momento que le añado una tercera opción ya vuelve a fallar.

Última edición por kahlito; 05/08/2011 a las 19:24