Ver Mensaje Individual
  #29 (permalink)  
Antiguo 06/08/2011, 09:31
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 New

Hasta ahora suelo usar muchos condicionales ya que estoy empezando con php y tengo un nivel muy bajo, de ahí que me cueste realizar un código o script como el tuyo..., lo he probado y la ejecución es perfecta para mi planteamiento, sin embargo siguiendo a mi manera (ya que quiero aprender a sacarlo y ver por que falla así...) he intentado de nuevo casi desde el principio y sigue fallando ya que como dice vgonga1986 "realmente se podrían dar situaciones en que validase por dos motivos, cosa que ya es errónea" y de ahí no salgo.

Cita:
// Si un checkbox o varios están marcados y completos se envian (también pueden ser los 4)
// Pero si uno o varios checkbox están marcados e incorrectos no se envian
// Si ninguno está marcado no se envia
He intentado pasar ese planteamiento siguiendo el orden de una estructura condicionada:

Código PHP:
Ver original
  1. if (condición1)
  2. {
  3.    Instrucción 1;
  4.    Instrucción 2;
  5.    ...
  6. }
  7. elseif (condición2)
  8. {
  9.    Instrucción A;
  10.    Instrucción B;
  11.    ...
  12. }
  13. else
  14. {
  15.    Instrucción X
  16.    ...
  17. }

Y aquí de nuevo el desarrollo básico tal como hacía en un principio

Código PHP:
Ver original
  1. // Si un checkbox o varios están marcados y completos se envian (también pueden ser los 4)
  2.     //if (condición1)
  3.     if ((isset($_POST['check11']) && ($_POST['prestacion-diaria']) != "" && ($_POST['prestacion-diaria'] != "Incompleto")) || (isset($_POST['check12']) && ($_POST['cirugia-y-tratamientos']) != "" && ($_POST['cirugia-y-tratamientos'] != "Incompleto")) || (isset($_POST['check12']) && ($_POST['cirugia-y-tratamientos2']) != "" && ($_POST['cirugia-y-tratamientos2'] != "Incompleto")))
  4.     {
  5.         echo "El campo o los campos seleccionados están correctos";
  6.     }
  7.     // Pero si uno o varios checkbox están marcados e incorrectos no se envian
  8.     //elseif (condición2)
  9.     elseif ((isset($_POST['check11']) && ($_POST['prestacion-diaria']) == "" && ($_POST['prestacion-diaria'] == "Incompleto")) || (isset($_POST['check12']) && ($_POST['cirugia-y-tratamientos']) == "" && ($_POST['cirugia-y-tratamientos'] == "Incompleto")) || (isset($_POST['check12']) && ($_POST['cirugia-y-tratamientos2']) == "" && ($_POST['cirugia-y-tratamientos2'] == "Incompleto")))
  10.         {
  11.             echo "Alguno de los campos seleccionados falla";
  12.         }          
  13.     //Condición final  
  14.     else
  15.     {
  16.         echo "Ninguno seleccionado";
  17.     }

Pero nada, ahi sigo clavado ya que siempre mezclo check11

La verdad estoy ya muy saturado de este tema, si no hay más respuestas lo entiendo perfectamente, gracias a los dos por vuestra enorme ayuda.