Ver Mensaje Individual
  #17 (permalink)  
Antiguo 03/08/2011, 07:55
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, aquí sigo con otro problema parecido pero esta vez con 4 condiciones

Son 4 checkbox con un campo condicionado a estos de los cuales tengo estas opciones ( o más)

Cita:
// Opciones disponibles para que se envie
// Si Check1, check2, check3 y check4 marcados y con las condiciones verdaderas
// Check1 marcado y condicion verdadera
// Check2 marcado y condicion verdadera
// Check3 marcado y condicion verdadera
// Check4 marcado y condicion verdadera
// Si Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas
Lo intento siguiendo los anteriores problemas (ya resueltos) sin embargo algo me vuelve a fallar otra vez y no se cumplen todas.

Código PHP:
Ver original
  1. <?php              
  2. if(isset($_POST['enviar']))
  3. {              
  4.     // Opciones disponibles para que se envie
  5.     // Si Check1, check2, check3 y check4 marcados y con las condiciones verdaderas
  6.     // Check1 marcado y condicion verdadera
  7.     // Check2 marcado y condicion verdadera
  8.     // Check3 marcado y condicion verdadera
  9.     // Check4 marcado y condicion verdadera
  10.     // Si Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas
  11.     //Primero preparo las condiciones para los campos condicionados
  12.     $cond1 = false;
  13.     $cond2 = false;
  14.     $cond3 = false;
  15.     $cond4 = false;
  16.     if (!empty ($_POST['importe-rotura']) && ($_POST['importe-rotura'] != "Incompleto"))
  17.     {
  18.     $cond1 = true;
  19.     }
  20.     if (!empty ($_POST['importe-daños']) && ($_POST['importe-daños'] != "Incompleto"))
  21.     {
  22.     $cond2 = true;
  23.     }
  24.     if (!empty ($_POST['importe-derrumbe']) && ($_POST['importe-derrumbe'] != "Incompleto"))
  25.     {
  26.     $cond3 = true;
  27.     }
  28.     if (!empty ($_POST['importe-todo-riesgo']) && ($_POST['importe-todo-riesgo'] != "Incompleto"))
  29.     {
  30.     $cond4 = true;
  31.     }
  32.     // Si existe check 1, check2, check3 y check4
  33.     if (isset($_POST['check1']))
  34.     {
  35.         if (isset($_POST['check2']))
  36.         {
  37.             if (isset($_POST['check3']))
  38.             {
  39.                 if (isset($_POST['check4']))
  40.                 {
  41.                 // Si las condiciones 1, 2, 3 y 4 se cumplen
  42.                 if ($cond1 && $cond2 && $cond3 && $cond4)
  43.                 {
  44.                 echo "CORRECTO: check1, check2, check3 marcados y sus importes rellenos.";
  45.                 }
  46.                 }
  47.             }
  48.         }
  49.     //Aquí cierro los dos if de todos las condiciones anteriores } 
  50.     }
  51.     // Si check1 está marcado y los demás no
  52.     elseif (isset($_POST['check1']))
  53.     {
  54.         if ($cond1)
  55.         {
  56.         echo "CORRECTO: check1 marcado y su importe relleno.";
  57.         }
  58.         else
  59.         {
  60.         echo "ERROR: check1 marcado y su importe vacio o Incompleto.";
  61.         }
  62.     }  
  63.     // Si check2 está marcado y los demás no
  64.     elseif (isset($_POST['check2']))
  65.     {
  66.         if ($cond2)
  67.         {
  68.         echo "CORRECTO: check2 marcado y su importe relleno.";
  69.         }
  70.         else
  71.         {
  72.         echo "ERROR: check2 marcado y su importe vacio o Incompleto.";
  73.         }      
  74.     }
  75.     // Si check3 está marcado y lo demás no
  76.     elseif (isset($_POST['check3']))
  77.     {
  78.         if ($cond3)
  79.         {
  80.         echo "CORRECTO: check3 marcado y su importe relleno.";
  81.         }
  82.         else
  83.         {
  84.         echo "ERROR: check3 marcado y su importe vacio o Incompleto.";
  85.         }      
  86.     }
  87.     // Si check4 está marcado y los demás no
  88.     elseif (isset($_POST['check4']))
  89.     {
  90.         if ($cond4)
  91.         {
  92.         echo "CORRECTO: check4 marcado y su importe relleno.";
  93.         }
  94.         else
  95.         {
  96.         echo "ERROR: check4 marcado y su importe vacio o Incompleto.";
  97.         }      
  98.     }
  99.     // Si Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas
  100.     if ((isset($_POST['check1'])) || (isset($_POST['check2'])) || (isset($_POST['check3'])) || (isset($_POST['check4'])))
  101.     {          
  102.         // Si las condiciones 1, 2, 3 y 4 se cumplen
  103.         if ($cond1 || $cond2 || $cond3 || $cond4)
  104.         {
  105.             echo "CORRECTO: Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas.";
  106.         }
  107.     }  
  108.     // si check1, check2, check3 y check4 están vacios 
  109.     else
  110.     {      
  111.         echo "Error: check1, check2, check3 y check4 vacios.";
  112.     }  
  113. }// Cierro la condición enviar
  114. ?>

¿Me estoy saltando o adelantando en alguna de las condiciones posibles?