Foros del Web » Programando para Internet » PHP »

Evitar envio de formulario con checkbox marcado con otro campo input vacio

Estas en el tema de Evitar envio de formulario con checkbox marcado con otro campo input vacio en el foro de PHP en Foros del Web. Hola. Si tengo este formulario donde tengo un checkbox (en este caso checkbox2 por ejemplo) y a su vez tiene un campo de texto que ...

  #1 (permalink)  
Antiguo 20/07/2011, 08:53
Avatar de 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
Evitar envio de formulario con checkbox marcado con otro campo input vacio

Hola.

Si tengo este formulario donde tengo un checkbox (en este caso checkbox2 por ejemplo) y a su vez tiene un campo de texto que hay que completar si el checbox se marca, ¿como puedo evitar que no se haga el envio?

El formulario ejemplo es este:

Código HTML:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
        <fieldset>
    	<legend>Datos personales</legend>
		<!-- TEXT -->
        <label for="nombre">Nombre:</label>
		<input type="text" id="nombre" name="nombre" <?php incompleto($_POST['nombre']);?> /><br />
<label for="coberturas">Coberturas (Seleccione al menos una):</label><br />
<br /> 
<input type="checkbox" value="Asistencia complementaria familiar con Asistencia dental" name="check1" <?php
if (isset($_POST['check1']) && $_POST['check1'] =="Asistencia complementaria familiar con Asistencia dental") { echo " checked='checked'"; }?>  />
Asistencia complementaria familiar con Asistencia dental.<br />
<input type="checkbox" value="Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente" name="check2" <?php
if (isset($_POST['check2']) && $_POST['check2'] =="Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente") { echo " checked='checked'"; }?>  />
Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. Introducir importe diario : 6- 60 eur
<input type="text" id="importe-diario" name="importe-diario"<?php 
if($_POST['enviar'])// Preparo para hacer el envio
	{
	// marcado
	if (isset($_POST['check2'])) // Si existe check2
		{     
		// Si existe importe diario y el campo está vacio o indica Incompleto
		if (isset($_POST['importe-diario']) && $_POST['importe-diario'] == "" || $_POST['importe-diario'] == "Incompleto" )
		// Aviso de Incompleto
		{echo "value=\"Incompleto\""; echo ' class="aviso-formulario"'; }
		// Si existe importe diario y el campo no está vacio y es distinto a Incompleto		
		elseif (isset($_POST['importe-diario']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")
		// Muestro o mantengo el valor actual de prestación diaria		
		{echo "value=".$_POST['importe-diario']."";}// Corrección de comillas dobles y variable post para imprimir directo				
	}
	// Si no está marcado el check box dejar el campo importe diario como vacio 	
	elseif (isset($_POST['check2']) == "" && $_POST['importe-diario'] != "")
        {echo 'value=""';}        
	}	
?> 
/>
</fieldset>
<input type="hidden" name="cantidad" value="2">
<input type="submit" value="Enviar" name="enviar" />
</form> 
Y aquí intento hacer el envío al correo:

Código PHP:
Ver original
  1. <?php              
  2.             if(isset($_POST['enviar']))//Si pulso enviar
  3.             {
  4.                 // Si check 2 no está vacio
  5.                            
  6.                     // Si check 1 o check 2 no están vacios    
  7.                     if( $_POST['check1'] != "" or $_POST['check2'] != "" && $_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto")
  8.                     //{echo "Está vacio";}
  9.                     // Si nombre no están vacio
  10.                     //if($_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto")           
  11.                     // Se envia
  12.                     {      
  13.                     //------------------ Aquí preparo el envio
  14.                     $para  = 'emailcualquiera@...' . ',';                  
  15.                     $para  .= 'emailcualquiera@...' . ','; 
  16.                     // asunto
  17.                     $asunto = 'Formulario de contacto - Salud';
  18.                     // mensaje
  19.                     $mensaje = "Nombre: " .$_POST['nombre']. "\n";                                                         
  20.                         //$mensaje .= "Coberturas: ";
  21.                         for($i=1; $i<=$_POST['cantidad']; $i++)
  22.                         {
  23.                         $key= "check".$i;
  24.                         if(!empty($_POST[$key]))
  25.                         //echo $_POST[$key]."\n";
  26.                         {$mensaje .= "Coberturas: $_POST[$key]. \n";}
  27.                         }
  28.                             // Si check2 existe
  29.                             if (isset($_POST['check2']))                           
  30.                             {    
  31.                                 // Si existe importe diario y el campo no está vacio o indica Incompleto
  32.                                 if ($_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")                            
  33.                                 {
  34.                                 $mensaje .= "Importe diario de Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. : " .$_POST['importe-diario']. "\n";      
  35.                                 }
  36.                             }                              
  37.                                 //----------------------------
  38.                     $enviando_datos=mail($para, $asunto, $mensaje, $cabeceras);
  39.                     if($enviando_datos==true)
  40.                     {
  41.                     header("Location: http://www.webcualquiera.es/respuesta.php");
  42.                     }
  43.                     else
  44.                     {
  45.                     //El Mensaje no se pudo enviar
  46.                     }      
  47.                     //------------------ Aquí cierro el envio de email
  48.                 }                      
  49.                 if($_POST['check2'] != "" && $_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto" && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")
  50.                     //{echo "Está vacio";}
  51.                     // Si nombre no están vacio
  52.                     //if($_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto")           
  53.                     // Se envia
  54.                     {      
  55.                     //------------------ Aquí preparo el envio
  56.                     $para  = 'emailcualquiera@...' . ',';                  
  57.                     $para  .= 'emailcualquiera@...' . ','; 
  58.                     // asunto
  59.                     $asunto = 'Formulario de contacto - Salud';
  60.                     // mensaje
  61.                     $mensaje = "Nombre: " .$_POST['nombre']. "\n";                                                         
  62.                         //$mensaje .= "Coberturas: ";
  63.                         for($i=1; $i<=$_POST['cantidad']; $i++)
  64.                         {
  65.                         $key= "check".$i;
  66.                         if(!empty($_POST[$key]))
  67.                         //echo $_POST[$key]."\n";
  68.                         {$mensaje .= "Coberturas: $_POST[$key]. \n";}
  69.                         }
  70.                             // Si check2 existe
  71.                             if (isset($_POST['check2']))                           
  72.                             {    
  73.                                 // Si existe importe diario y el campo no está vacio o indica Incompleto
  74.                                 if ($_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")                            
  75.                                 {
  76.                                 $mensaje .= "Importe diario de Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. : " .$_POST['importe-diario']. "\n";      
  77.                                 }
  78.                             }                              
  79.                                 //----------------------------
  80.                     $enviando_datos=mail($para, $asunto, $mensaje, $cabeceras);
  81.                     if($enviando_datos==true)
  82.                     {
  83.                     header("Location: http://webcualquiera.es/respuesta.php");
  84.                     }
  85.                     else
  86.                     {
  87.                     //El Mensaje no se pudo enviar
  88.                     }      
  89.                     //------------------ Aquí cierro el envio de email
  90.                 }                                              
  91.             // Cierro el envio total
  92.             }          
  93. ?>

¿Como puedo evitar que se envíe teniendo marcado checkbox2 y vacio el campo $_POST['importe-diario'] o como "Incompleto"? Esta es la condición que le pongo pero no me frena el envio.

Código PHP:
Ver original
  1. if($_POST['check2'] != "" && $_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto" && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")

Saludos.
  #2 (permalink)  
Antiguo 20/07/2011, 09:02
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Lo podes hacer con onsubmit dentro del form
  #3 (permalink)  
Antiguo 20/07/2011, 09:03
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Usa empty para verificar si está vacio y isset si checkbox2 está marcado.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 20/07/2011, 09:54
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Código PHP:
Ver original
  1. if( !empty($_POST['textfield']) && isset($_POST['name_checkbox2']){
  2.  
  3. // ejecucion
  4.  
  5. }

*Si el cheackbox2 fue marcado y el campo de texto no es vacio.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #5 (permalink)  
Antiguo 21/07/2011, 12:45
Avatar de 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, gracias por la ayuda.

Finalmente lo he resuelto utilizando las recomendaciones que me dais con empty y con isset:

Código PHP:
Ver original
  1. <?php              
  2.             if(isset($_POST['enviar']))//Si pulso enviar
  3.             {
  4.                 // Si importe diario no está vacio y existe check2                 
  5.                 if(!empty($_POST['importe-diario']) && isset($_POST['check2']))
  6.                     {
  7.                         // Si check1 o check2 no están vacios y nombre no está vacio o Incompleto
  8.                         if( $_POST['check1'] != "" or $_POST['check2'] != "" && $_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto")                
  9.                     // Se envia
  10.                     {      
  11.                     //------------------ Aquí preparo el envio
  12.                     $para  = '[email protected]' . ',';                  
  13.                     // asunto
  14.                     $asunto = 'Formulario de contacto - Salud';
  15.                     // mensaje
  16.                     $mensaje = "Nombre: " .$_POST['nombre']. "\n";                                                         
  17.                         //$mensaje .= "Coberturas: ";
  18.                         for($i=1; $i<=$_POST['cantidad']; $i++)
  19.                         {
  20.                         $key= "check".$i;
  21.                         if(!empty($_POST[$key]))
  22.                         //echo $_POST[$key]."\n";
  23.                         {$mensaje .= "Coberturas: $_POST[$key]. \n";}
  24.                         }
  25.                             // Si check2 existe
  26.                             if (isset($_POST['check2']))                           
  27.                             {    
  28.                                 // Si existe importe diario y el campo no está vacio o indica Incompleto
  29.                                 if ($_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")                            
  30.                                 {
  31.                                 $mensaje .= "Importe diario de Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. : " .$_POST['importe-diario']. "\n";      
  32.                                 }
  33.                             }                              
  34.                                 //----------------------------
  35.                     $enviando_datos=mail($para, $asunto, $mensaje, $cabeceras);
  36.                     if($enviando_datos==true)
  37.                     {
  38.                     header("Location: http://web.es/respuesta.php");
  39.                     }
  40.                     else
  41.                     {
  42.                     //El Mensaje no se pudo enviar
  43.                     }      
  44.                     //------------------ Aquí cierro el envio de email                                     
  45.                 }}
  46.                     // Si check2 está vacio                                
  47.                     elseif(empty($_POST['check2']))
  48.                     {
  49.                         // Si check1 o check2 no están vacios y nombre no está vacio o Incompleto
  50.                         if( $_POST['check1'] != "" or $_POST['check2'] != "" && $_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto")                        
  51.                     // Se envia
  52.                     {      
  53.                     //------------------ Aquí preparo el envio
  54.                     $para  = '[email protected]' . ',';                  
  55.                     // asunto
  56.                     $asunto = 'Formulario de contacto - Salud';
  57.                     // mensaje
  58.                     $mensaje = "Nombre: " .$_POST['nombre']. "\n";                                                         
  59.                         //$mensaje .= "Coberturas: ";
  60.                         for($i=1; $i<=$_POST['cantidad']; $i++)
  61.                         {
  62.                         $key= "check".$i;
  63.                         if(!empty($_POST[$key]))
  64.                         //echo $_POST[$key]."\n";
  65.                         {$mensaje .= "Coberturas: $_POST[$key]. \n";}
  66.                         }
  67.                             // Si check2 existe
  68.                             if (isset($_POST['check2']))                           
  69.                             {    
  70.                                 // Si existe importe diario y el campo no está vacio o indica Incompleto
  71.                                 if ($_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")                            
  72.                                 {
  73.                                 $mensaje .= "Importe diario de Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. : " .$_POST['importe-diario']. "\n";      
  74.                                 }
  75.                             }                              
  76.                                 //----------------------------
  77.                     $enviando_datos=mail($para, $asunto, $mensaje, $cabeceras);
  78.                     if($enviando_datos==true)
  79.                     {
  80.                     header("Location: http://web.es/respuesta.php");
  81.                     }
  82.                     else
  83.                     {
  84.                     //El Mensaje no se pudo enviar
  85.                     }      
  86.                     //------------------ Aquí cierro el envio de email                                     
  87.                 }}                                             
  88.             // Cierro el envio total
  89.             }          
  90. ?>

Resumiendo:

Código PHP:
Ver original
  1. // Si importe diario no está vacio y existe check2                 
  2. if(!empty($_POST['importe-diario']) && isset($_POST['check2']))
  3. {
  4. //acción
  5. }
  6. //o
  7. // Si check2 está vacio                                
  8. elseif(empty($_POST['check2']))
  9. {
  10. //acción
  11. }

Hasta ahí bien, ¿pero y si quiero añadir otro nuevo check con otro campo de texto condicionado?

He probado con este ejemplo pero no me sirve:

Código PHP:
Ver original
  1. // Si importe diario no está vacio y existe check2                 
  2. if(!empty($_POST['importe-diario']) && isset($_POST['check2']))
  3. if(!empty($_POST['importe-diari3o']) && isset($_POST['check3']))
  4. {
  5. //acción
  6. }
  7. //o
  8. // Si check2 está vacio                                
  9. if(empty($_POST['check2']))
  10. if(empty($_POST['check3']))
  11. {
  12. //acción
  13. }

¿Podría seguir la misma fórmula o tengo que cambiar también la anterior?
  #6 (permalink)  
Antiguo 21/07/2011, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Puedes encadenar opciones en el if usando los operadores && o ||, por ejemplo:
Código PHP:
Ver original
  1. if (!empty($_POST['check1']) && !empty($_POST['check2']))

Saludos.
  #7 (permalink)  
Antiguo 21/07/2011, 20:19
Avatar de 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

GatorV, esa opción la he probado pero tampoco termino de arreglar la solución final o aclararme... ya que además ahora me doy cuenta que no solo es si está vacío el campo de texto si no que si marca Incompleto tampoco debe de enviarse.

He preparado unas opciones aparte con todo lo que podría ser:

Código PHP:
Ver original
  1. <?php              
  2.             if(isset($_POST['enviar']))//Si pulso enviar
  3. {
  4.     // Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto.
  5.     // Si check2 está marcado e importe diario no está vacio o "Incompleto"
  6.     // Si check3 está marcado e importe diario3 no está vacio o "Incompleto"               
  7.     // Si check2 y check 3 están vacios                                
  8.     if(isset($_POST['check2']) && isset($_POST['check3']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto" && $_POST['importe-diario3'] != "" && $_POST['importe-diario3'] != "Incompleto")
  9.     {//accion
  10.     echo "Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto";
  11.     }
  12.     elseif(isset($_POST['check2']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")
  13.     {//accion
  14.     echo "Si check2 está marcado e importe diario no está vacio o Incompleto";
  15.     }
  16.     elseif(isset($_POST['check3']) && $_POST['importe-diario3'] != "" && $_POST['importe-diario3'] != "Incompleto")
  17.     {//accion
  18.     echo "Si check3 está marcado e importe diario3 no está vacio o Incompleto";
  19.     }
  20.     if(empty($_POST['check2']) && empty($_POST['check3']))         
  21.     {//accion
  22.     echo "Si check2 y check 3 están vacios";
  23.     }              
  24. // Cierro el envio total
  25. }          
  26. ?>

Sin embargo me doy cuenta que si marco los dos checkbox (2 y 3) y en checkbox2 está marcado y el campo importe-diario no está ni vacio ni Incompleto (correcto) y por ejemplo en checkbox3 está marcado pero importe-diario3 vacio o Incompleto (incorrecto y no debería de enviarse) se sigue enviando...

Lo he intentado con esta línea pero tampoco evita el envío.

Código PHP:
Ver original
  1. if(isset($_POST['check2']) && isset($_POST['check3']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto" && $_POST['importe-diario3'] != "" && $_POST['importe-diario3'] != "Incompleto")
  2.                 {//accion
  3.                     echo "Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto";
  4.                 }

¿Como podría arreglar eso último?
  #8 (permalink)  
Antiguo 22/07/2011, 08:06
Avatar de 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.

Ahora he probado utilizando solo esta opción para enlazar los dos checkbox (2 y 3) condicionados con los campos de textos pero tampoco.

Código PHP:
Ver original
  1. if(isset($_POST['check2']) && isset($_POST['check3']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto" && $_POST['importe-diario3'] != "" && $_POST['importe-diario3'] != "Incompleto")
  2.     {//accion
  3.     echo "Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto";
  4.     }

Si check2 está marcado y no está vacio ni "Incompleto" en el caso que check3 esté vacío entonces no me deja enviarlo y si debería.

Si vuelvo a lo anterior hace lo contrario y me lo envía estando marcado check3 pero con su campo vacio o "Incompleto" y tampoco...

¿Que otra opción podría probar para que se cumplan las dos y no se afecten entre ellas?.

Las cuatro opciones que tengo para que se cumpla el envio son las citadas anteriormente:

// Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto.
// Si check2 está marcado e importe diario no está vacio o "Incompleto"
// Si check3 está marcado e importe diario3 no está vacio o "Incompleto"
// Si check2 y check 3 están vacios

Saludos.
  #9 (permalink)  
Antiguo 22/07/2011, 08:58
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Bueno, creo que te estás ahogando en un baso de agua, no hay como llevar un poco de orden:

Código PHP:
//Primero hacemos un pequeño cambio para que los ifs de después no queden tan largos:
$cond1 false;
$cond2 false;
if (!empty(
$_POST['importe-diario'])) AND (strtolower($_POST['importe-diario'] != "incompleto"))) {
   
$cond1 true;
}
if (!empty(
$_POST['importe-diario3'])) AND (strtolower($_POST['importe-diario3'] != "incompleto"))) {
   
$cond2 true;
}
// cond1 quedará true si importe-diario se rellenó con algún valor diferente de Incompleto y lo mismo con cond2 e importe-diario3.


if (isset($_POST['check2'])) {
   if (isset(
$_POST['check3'])) {
      
// check2 y check3
      
if (cond1 && cond2) {
         echo 
"CORRECTO: check2 marcado e importe-diario relleno. check3 marcado e importe-diario3 relleno.";
      } else {
         echo 
"ERROR: se marcó algún check y no se rellenó su campo.";
      }
   } else {
      
// check2 y no check3
      
if (cond1) {
         echo 
"CORRECTO: check2 marcado e importe-diario relleno.";
      } else {
         echo 
"ERROR: check2 marcado e importe-diario NO relleno.";
      }
   }
} else {
   if (isset(
$_POST['check3'])) {
      
// no check2 y check3
      
if (cond3) {
         echo 
"CORRECTO: check3 marcado e importe-diario3 relleno.";
      } else {
         echo 
"ERROR: check3 marcado e importe-diario3 NO relleno.";
      }
   } else {
      
// no check2 y no check3
      
echo "CORRECTO: check2 y check3 no marcados.";
   }

No lo he probado, pero en principio irá bien, prueba todas las convinaciones y si alguna no imprime lo que tiene que ser, me dices cuál. Espero que esté todo bien.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #10 (permalink)  
Antiguo 22/07/2011, 22:09
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Hola Kahlito, que tal.

Estaba leyendo que te gustaría tener estas 4 opciones:

Cita:
Iniciado por kahlito Ver Mensaje
Hola de nuevo.
// Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto.
// Si check2 está marcado e importe diario no está vacio o "Incompleto"
// Si check3 está marcado e importe diario3 no está vacio o "Incompleto"
// Si check2 y check 3 están vacios
Que te parce si hacemos un switch, y con condicionales damos el valor del case


por ejemplo:

Código PHP:
Ver original
  1. $caso = 0;
  2.  
  3. if( isset($_POST['check2']) && isset($_POST['check3'])
  4.     && !empty($_POST['importe_diario']) || $_POST['importe_diario'] != "Incompleto"
  5.     && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  6.  
  7. $caso = 1;
  8.  
  9. else if( isset($_POST['check2']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] != "Incompleto" )
  10.  
  11. $caso = 2;
  12.  
  13. else if ( isset($_POST['check3']) && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  14.  
  15. $caso = 3;
  16.  
  17. else if( empty($_POST['check2']) && empty($_POST['check3'] )
  18.  
  19. $caso 4;
  20.  
  21. else
  22.  
  23. $caso 0;
  24.  
  25.  
  26.  
  27. switch($caso){
  28.  
  29.         case 1:
  30.                          
  31.                                //código primer condicion                      
  32.  
  33.                break;
  34.  
  35.          case 2:
  36.                             //codigo segunda condicion etc...
  37.                break;
  38. .
  39. .
  40. .
  41. .etc...
  42.  
  43. }

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #11 (permalink)  
Antiguo 27/07/2011, 20:05
Avatar de 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 vgonga1986.

He seguido tu ejemplo y creo que lo he entendido, he cambiado algunas cosas y con esto me sale perfectamente para seguir con lo demás:

Código PHP:
Ver original
  1. <?php              
  2.             if(isset($_POST['enviar']))//Si pulso enviar
  3.             {
  4.             //Primero hacemos un pequeño cambio para que los ifs de después no queden tan largos:
  5. $cond1 = false;
  6. $cond2 = false;
  7. /*if (!empty($_POST['importe-diario'])) AND (strtolower($_POST['importe-diario'] != "incompleto"))) {
  8.    $cond1 = true;
  9. }*/
  10. if (!empty ($_POST['importe-diario']) && ($_POST['importe-diario'] != "Incompleto"))
  11. {
  12.     $cond1 = true;
  13.     }
  14. if (!empty ($_POST['importe-diario3']) && ($_POST['importe-diario3'] != "Incompleto"))
  15. {
  16.     $cond2 = true;
  17.     }
  18. // cond1 quedará true si importe-diario se rellenó con algún valor diferente de Incompleto y lo mismo con cond2 e importe-diario3.
  19.  
  20. if (isset($_POST['check2'])) {
  21.    if (isset($_POST['check3'])) {
  22.       // check2 y check3
  23.       if ($cond1 && $cond2) {
  24.          echo "CORRECTO: check2 marcado e importe-diario relleno. check3 marcado e importe-diario3 relleno.";
  25.       } else {
  26.          echo "ERROR: se marcó algún check y no se rellenó su campo.";
  27.       }
  28.    } else {
  29.       // check2 y no check3
  30.       if ($cond1) {
  31.          echo "CORRECTO: check2 marcado e importe-diario relleno.";
  32.       } else {
  33.          echo "ERROR: check2 marcado e importe-diario NO relleno.";
  34.       }
  35.    }
  36. } else {
  37.    if (isset($_POST['check3'])) {
  38.       // no check2 y check3
  39.       if ($cond2) {
  40.          echo "CORRECTO: check3 marcado e importe-diario3 relleno.";
  41.       } else {
  42.          echo "ERROR: check3 marcado e importe-diario3 NO relleno.";
  43.       }
  44.    } else {
  45.       // no check2 y no check3
  46.       echo "CORRECTO: check2 y check3 no marcados.";
  47.    }
  48. }  
  49.             }          
  50. ?>

Muchas gracias




Hola de nuevo New, esa opción con un switch la intenté hace varios días pero no de la misma manera y me daba error, ahora he seguido la tuya, la entiendo perfectamente ( o eso creo) sin embargo algo me falla.

He probado asi:

Código PHP:
Ver original
  1. <?php
  2. $caso = 1; // Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto.
  3. if( isset($_POST['check2']) && isset($_POST['check3']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] !=           "Incompleto" && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  4. $caso = 2; // Si check2 está marcado e importe diario no está vacio o "Incompleto"
  5. else if( isset($_POST['check2']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] != "Incompleto")
  6. $caso = 3;// Si check3 está marcado e importe diario3 no está vacio o "Incompleto"   
  7. else if ( isset($_POST['check3']) && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  8. $caso = 4;// Si check2 y check 3 están vacios        
  9. else if( empty($_POST['check2']) && empty($_POST['check3'] ))
  10.     if(isset($_POST['enviar']))//Si pulso enviar
  11.             {              
  12.             switch($caso){
  13.             case 1://código primer condicion
  14.             echo "Código primera condición";
  15.             break;
  16.             case 2://codigo segunda condicion
  17.             echo "Código segunda condición";
  18.             break;
  19.             case 3://código tercera condicion
  20.             echo "Código tercera condición";
  21.             break;
  22.             case 4://codigo cuarta condicion
  23.             echo "Código cuarta condición";
  24.             break;     
  25.             }      
  26.             // Cierro el envio total
  27.     }      
  28. ?>

Pero no lo reconoce, también he probado introduciendo los cacos y variables después de pulsar el botón enviar y tampoco da resultado.

¿Me falta algún paso siguiendo tu ejemplo?

Gracias a los dos por vuestra ayuda y explicaciones.

Última edición por kahlito; 05/08/2011 a las 19:21
  #12 (permalink)  
Antiguo 27/07/2011, 20:24
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

hola amigo.

Algo anda mal en tu código. Tienes mal colocadas las condicionales.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  if(isset($_POST['enviar']))  { //Si pulso enviar
  4.  
  5. if( isset($_POST['check2']) && isset($_POST['check3']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] != * * * * * "Incompleto" && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  6.  
  7. $caso = 1; // Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto.
  8.  
  9.  
  10. else if( isset($_POST['check2']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] != "Incompleto")
  11.  
  12. $caso = 2; // Si check2 está marcado e importe diario no está vacio o "Incompleto"
  13.  
  14. * *
  15. else if ( isset($_POST['check3']) && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  16.  
  17. $caso = 3;// Si check3 está marcado e importe diario3 no está vacio o "Incompleto"
  18.  
  19.  
  20. else if( empty($_POST['check2']) && empty($_POST['check3'] ))
  21.  
  22. $caso = 4;// Si check2 y check 3 están vacios * * * *
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  switch($caso){
  29.  case 1://código primer condicion
  30.  echo "Código primera condición";
  31.  break;
  32.  case 2://codigo segunda condicion
  33.  echo "Código segunda condición";
  34.  break;
  35.  case 3://código tercera condicion
  36.  echo "Código tercera condición";
  37.  break;
  38.  case 4://codigo cuarta condicion
  39.  echo "Código cuarta condición";
  40.  break;
  41.  }
  42.  // Cierro el envio total
  43.  }  
  44. ?>

Prueba con eso. Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #13 (permalink)  
Antiguo 27/07/2011, 21:09
Avatar de 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 otra vez, las he cambiado de orden pero solo me sigue cogiendo la primera condición por ahora:

Código PHP:
Ver original
  1. <?php
  2.     if(isset($_POST['enviar']))//Si pulso enviar   
  3.             {
  4.             if( isset($_POST['check2']) && isset($_POST['check3']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] !="Incompleto" && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  5. $caso = 1; // Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto.
  6.  
  7. else if( isset($_POST['check2']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] != "Incompleto")
  8. $caso = 2; // Si check2 está marcado e importe diario no está vacio o "Incompleto"
  9.  
  10. else if ( isset($_POST['check3']) && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  11. $caso = 3;// Si check3 está marcado e importe diario3 no está vacio o "Incompleto" 
  12.          
  13. else if( empty($_POST['check2']) && empty($_POST['check3'] ))
  14. $caso = 4;// Si check2 y check 3 están vacios              
  15.             switch($caso){
  16.             case 1://código primer condicion
  17.             echo "Código primera condición";
  18.             break;
  19.             case 2://codigo segunda condicion
  20.             echo "Código segunda condición";
  21.             break;
  22.             case 3://código tercera condicion
  23.             echo "Código tercera condición";
  24.             break;
  25.             case 4://codigo cuarta condicion
  26.             echo "Código cuarta condición";
  27.             break;     
  28.             }      
  29.             // Cierro el envio total
  30.     }      
  31. ?>

¿Todavía tengo mal los condicionales?
  #14 (permalink)  
Antiguo 28/07/2011, 01:21
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Sólo un apunte, yo te añadí strtolower a la comprobación de incompleto:
strtolower($_POST['importe-diario']) != "incompleto"

para que siempre pase a minúsculas antes de comparar. Si pones simplemente:
$_POST['importe-diario'] != "Incompleto"

y el usuario pone inComPLeTo no te funcionaría bien. Pero bueno, esto es teniendo en cuenta que es el usuario el que da ese valor, que no sé si será así o lo controlas tú.

Suerte y un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #15 (permalink)  
Antiguo 28/07/2011, 14:50
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

las condicionales las veo bien.

Pero creo que tienes que jugar un poco con ellas.

veras puede que exista la posibilidad de que se cumpla una doble condiciones un ejemplo.

--------------EJEMPLO; si tienes:

-> Si check2 y check3 estan vacios => case = 1;
-> Si check 2 y check3 estan vacios pero a demás importe_diario == "Incompleto" => case = 2;

..... etc...
por ejemplo.

Que es lo que va a suceder cuando check2 y check3 esten vacios?
Siempre ocurrira case = 1 aunque importe_diario sea igual a "Incompleto"

Por esta razon es que debes de imaginar que condiconales tiene la mayor gerarquía para que estas vayan al principio, y las de menor gerarquia vaya al final. Para evitar una doble condición, como es el caso de éste ejemplo y como tambien lo es de tu ejercicio.

P.D: Cuando yo te puse las condicionales pensé en éste detalle pero puede ser que algo haya pasado por alto.

Siento que ya es tiempo de solicionar ésta duda. Si puedes subir el código del formulario para ver que parametros estas enviando al script PHP, y el script PHP ya sea pegandolo o subiendolo a un archivo. Yo prefiero lo segundo para solamente abrirlo con mi editor, hacer los ajustes, probarlo y subirtelo para que lo descargues.

Como te digo solo es probar en donde ésta el error cuando no se puede identificar a simple vista, en ocaciones hay que hacer muchas pruebas. Con confianza yo te ayudo.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Última edición por iovan; 28/07/2011 a las 14:57
  #16 (permalink)  
Antiguo 28/07/2011, 16:29
Avatar de 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 vgonga, la verdad es que he probado tal cual te puse poniendo inComPLeTo y me va bien, hasta ahora lo dejo como dos únicas opciones la de no estar vacío y no dejar el aviso automático "Incompleto". Esa opción de que nadie tampoco lo envée como inComPLeTo no la he tenido en cuenta por ahora, es como si alguien escribe inConVenio o algo asi y es aceptado por el cliente como envio del usuario, aun asi lo comentaré.

Gracias de nuevo



Buenas New.

En realidad este fragmento lo he sacado de otro formulario real que es mucho más grande y tiene dentro esos dos campos condicionados y que a la vez existe la posibilidad de no ser marcados... por eso todas estas pruebas.

Este mismo ejemplo lo tengo con más casillas pero solo me estoy basando como prueba en estos dos checkbox condicionados, este es el código:

Para enviar todo al correo:

Código PHP:
Ver original
  1. <?php
  2.     if(isset($_POST['enviar']))//Si pulso enviar   
  3.             {
  4.             if( isset($_POST['check2']) && isset($_POST['check3']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] !="Incompleto" && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  5. $caso = 1; // Si check2 y check3 están marcados e importe diario e importe diario3 no están vacios o Incompleto.
  6.  
  7. else if( isset($_POST['check2']) && !empty($_POST['importe_diario']) || $_POST['importe_diario'] != "Incompleto")
  8. $caso = 2; // Si check2 está marcado e importe diario no está vacio o "Incompleto"
  9.  
  10. else if ( isset($_POST['check3']) && !empty($_POST['importe_diario3']) || $_POST['importe_diario3'] != "Incompleto" )
  11. $caso = 3;// Si check3 está marcado e importe diario3 no está vacio o "Incompleto" 
  12.          
  13. else if( empty($_POST['check2']) && empty($_POST['check3'] ))
  14. $caso = 4;// Si check2 y check 3 están vacios              
  15.             switch($caso){
  16.             case 1://código primer condicion
  17.             echo "Código primera condición";
  18.             break;
  19.             case 2://codigo segunda condicion
  20.             echo "Código segunda condición";
  21.             break;
  22.             case 3://código tercera condicion
  23.             echo "Código tercera condición";
  24.             break;
  25.             case 4://codigo cuarta condicion
  26.             echo "Código cuarta condición";
  27.             break;     
  28.             }      
  29.             // Cierro el envio total
  30.     }      
  31. ?>

Html del body y formulario:

Código HTML:
<h2>Su presupuesto</h2>
<?php
function incompleto($valor_input)
{
if(isset($valor_input) && $valor_input == "" || $valor_input == "Incompleto")
{echo "value=\"Incompleto\"";
echo ' class="aviso-formulario"';} 
else {echo "value=\"$valor_input\"";}
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
        <fieldset>
    	<legend>Datos personales</legend>
		<!-- TEXT -->
        <label for="nombre">Nombre:</label>
		<input type="text" id="nombre" name="nombre" <?php incompleto($_POST['nombre']);?> /><br />
<label for="coberturas">Coberturas (Seleccione al menos una):</label><br />
<br /> 
<input type="checkbox" value="Asistencia complementaria familiar con Asistencia dental" name="check1" <?php
if (isset($_POST['check1']) && $_POST['check1'] =="Asistencia complementaria familiar con Asistencia dental") { echo " checked='checked'"; }?>  />
Asistencia complementaria familiar con Asistencia dental.<br />
<input type="checkbox" value="Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente" name="check2" <?php
if (isset($_POST['check2']) && $_POST['check2'] =="Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente") { echo " checked='checked'"; }?>  />
Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. Introducir importe diario : 6- 60 eur
<input type="text" id="importe-diario" name="importe-diario"<?php 
if($_POST['enviar'])// Preparo para hacer el envio
	{
	// marcado
	if (isset($_POST['check2'])) // Si existe check2
		{     
		// Si existe importe diario y el campo está vacio o indica Incompleto
		if (isset($_POST['importe-diario']) && $_POST['importe-diario'] == "" || $_POST['importe-diario'] == "Incompleto" )
		// Aviso de Incompleto
		{echo "value=\"Incompleto\""; echo ' class="aviso-formulario"'; }
		// Si existe importe diario y el campo no está vacio y es distinto a Incompleto		
		elseif (isset($_POST['importe-diario']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")
		// Muestro o mantengo el valor actual de prestación diaria		
		{echo "value=".$_POST['importe-diario']."";}// Corrección de comillas dobles y variable post para imprimir directo				
	}
	// Si no está marcado el check box dejar el campo importe diario como vacio 	
	elseif (isset($_POST['check2']) == "" && $_POST['importe-diario'] != "")
        {echo 'value=""';}        
	}	
?> 
/><br />
<input type="checkbox" value="Asistencia 3" name="check3" <?php
if (isset($_POST['check3']) && $_POST['check3'] =="Asistencia 3") { echo " checked='checked'"; }?>  />
Asistencia 3. introducir importe 3
<input type="text" id="importe-diario3" name="importe-diario3"<?php 
if($_POST['enviar'])// Preparo para hacer el envio
	{
	// marcado
	if (isset($_POST['check3'])) // Si existe check2
		{     
		// Si existe importe diario y el campo está vacio o indica Incompleto
		if (isset($_POST['importe-diario3']) && $_POST['importe-diario3'] == "" || $_POST['importe-diario3'] == "Incompleto" )
		// Aviso de Incompleto
		{echo "value=\"Incompleto\""; echo ' class="aviso-formulario"'; }
		// Si existe importe diario y el campo no está vacio y es distinto a Incompleto		
		elseif (isset($_POST['importe-diario3']) && $_POST['importe-diario3'] != "" && $_POST['importe-diario3'] != "Incompleto")
		// Muestro o mantengo el valor actual de prestación diaria		
		{echo "value=".$_POST['importe-diario3']."";}// Corrección de comillas dobles y variable post para imprimir directo				
	}
	// Si no está marcado el check box dejar el campo importe diario como vacio 	
	elseif (isset($_POST['check3']) == "" && $_POST['importe-diario3'] != "")
        {echo 'value=""';}        
	}	
?> 
/>





</fieldset>
<input type="hidden" name="cantidad" value="3">
<input type="submit" value="Enviar" name="enviar" />
</form> 

y luego la validación antes de enviar:

Código PHP:
Ver original
  1. <?php              
  2.             if(isset($_POST['enviar']))
  3.                 {
  4.                     if($_POST['nombre'] == "" or $_POST['nombre'] == "Incompleto")
  5.                     {echo "<p class=\"aviso-formulario\">Faltan campos por completar</p>";}                
  6.                     if($_POST['check1'] == "" && $_POST['check2'] == "")
  7.                     {echo "<p class=\"aviso-formulario\">Indique alguna cobertura</p>";}
  8.                     if ($_POST['check2'] != "")
  9.                     //if (isset($_POST['check4']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")  
  10.                     {    
  11.                     // Si existe prestacion diaria y el campo está vacio o indica Incompleto
  12.                         if ($_POST['importe-diario'] == "" || $_POST['importe-diario'] == "Incompleto")
  13.                     //if (isset($_POST['importe-diario']) && $_POST['importe-diario'] != "" || $_POST['importe-diario'] != "Incompleto")
  14.                         {
  15.                             {echo "<p class=\"aviso-formulario\">Indique el importe diario</p>";}
  16.                         }  
  17.                 }
  18.                 if ($_POST['check3'] != "")
  19.                     //if (isset($_POST['check4']) && $_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")  
  20.                     {    
  21.                     // Si existe prestacion diaria y el campo está vacio o indica Incompleto
  22.                         if ($_POST['importe-diario3'] == "" || $_POST['importe-diario3'] == "Incompleto")
  23.                     //if (isset($_POST['importe-diario']) && $_POST['importe-diario'] != "" || $_POST['importe-diario'] != "Incompleto")
  24.                         {
  25.                             {echo "<p class=\"aviso-formulario\">Indique el importe diario 3</p>";}
  26.                         }  
  27.                 }
  28.             }                  
  29. ?>

Saludos.

Última edición por kahlito; 05/08/2011 a las 19:23
  #17 (permalink)  
Antiguo 03/08/2011, 07:55
Avatar de 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?
  #18 (permalink)  
Antiguo 03/08/2011, 08:12
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Qué caso no te funciona? Has comprobado bien apertura y cierre de llaves?
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #19 (permalink)  
Antiguo 03/08/2011, 08:34
Avatar de 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.

La verdad es que sí he comprobado la apertura y cierre de llaves, o al menos eso creo...

Por ejemplo:

Cita:
- si marco el check 1 y esta vacio o incompleto no me avisa y si lo arreglo me pasa a la opción final:

CORRECTO: Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas.

- si luego marco check 2 y tambien está mal me sigue marcando la opción final

CORRECTO: Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas.
y asi lo mismo si marco las siguientes y alguna está mal (es decir lo toma como correcto)

Cita:
Sí luego por ejemplo reseteo y marco solo check3 y esta vacio o inconmpleto me avisa del error pero tambien me avisa del envio:

ERROR: check3 marcado y su importe vacio o Incompleto.CORRECTO: Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas.
Y así continuamente...
  #20 (permalink)  
Antiguo 03/08/2011, 08:51
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Probablemente ambos errores se deban a lo mismo. Realmente tienes dos bloques if ahí. De ahí el segundo error, que te devuelva los dos textos. Tienes un primer bloque de ifs con un if, cuatro elsif y sin else final. Y luego tienes un segundo if con if y else.

Además, esto no es lo que quieres. En el comentario lo haces bien, pones 1 y 2 y 3 y 4. pero en el código has puesto 1 ó 2 ó 3 ó 4. Te das cuenta del error?
Código PHP:
Ver original
  1. // Si las condiciones 1, 2, 3 y 4 se cumplen
  2.         if ($cond1 || $cond2 || $cond3 || $cond4)

Ese es un error, pero tienes otro, cuando arregles eso y pongas &&'s en vez de ||'s seguirás teniendo otro problema. El caso es el siguiente:
- Marcas check1 (igual para check2, check3 y check4) y rellenas bien todos los campos.
Entrará en el primer bloque ifs y entrará por la segunda opción ya que isset($_POST['check1']) es verdadero y $cond1 también. Luego ejecutará el segundo bloque de if y entrará por el primer if, ya que isset($_POST['check1']) es verdadero y $cond1 && $cond2 && $cond3 && $cond4 es verdadero.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #21 (permalink)  
Antiguo 03/08/2011, 08:56
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Añado más explicación: el problema no es de código PHP, el problema es del planteamiento de los ifs. Un bloque de ifs tiene que tener dos condiciones, que al menos una opción se ejecute y que no se puedan ejecutar dos opciones (ya que la segunda nunca se alcanzará):
Cita:
Iniciado por kahlito Ver Mensaje
// 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
"Check1 marcado y condicion verdadera" es verdadero siempre que "Si Check1 o check2 o check3 o check4 marcados y con las condiciones verdaderas" para check1 sea verdadero, luego siempre va a entrar por las dos condiciones. Tienes que replantearte la construcción del bloque if.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #22 (permalink)  
Antiguo 04/08/2011, 09:11
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Hola amigo, verifica si esto ya te funciona un saludo

Código PHP:
Ver original
  1. <?php
  2. /* Creamos un metodo que se realiza en caso de que se cumpla las condiciones:
  3.  * Puede ser el envio del formulario, por ejemplo.
  4.  */
  5. $cond1 = FALSE;
  6. $cond2 = FALSE;
  7. $cond3 = FALSE;
  8. $cond4 = FALSE;
  9. $contCondiciones=0;
  10. $contCheckBox=0;
  11.  
  12. function enviarForm() {
  13.     echo "Se ha mandado el formulario";
  14. }
  15.  
  16. //Primero verifico si se ha precionado el boton enviar
  17. if (isset($_POST['submit'])) {
  18.  
  19.     if (!empty($_POST['importe-rotura']) && $_POST['importe-rotura'] != "Incompleto") {
  20.         $cond1 = TRUE;
  21.     }
  22.     if (!empty($_POST['importe-daños']) && $_POST['importe-daños'] != "Incompleto") {
  23.         $cond2 = TRUE;
  24.     }
  25.     if (!empty($_POST['importe-derrumbe']) && $_POST['importe-derrumbe'] != "Incompleto") {
  26.         $cond3 = TRUE;
  27.     }
  28.     if (!empty($_POST['importe-todo-riesgo']) && $_POST['importe-todo-riesgo'] != "Incompleto") {
  29.         $cond4 = TRUE;
  30.     }
  31.  
  32.     //Verifico la primer condicion (check1 - check4)
  33.     for ($i = 1; $i <= 4; $i++) {
  34.         if (isset($_POST['check' . $i]))
  35.             $contCheckBox++;
  36.     }
  37.  
  38.     if ($cond1) {
  39.         $contCondiciones++;
  40.     }
  41.     if ($cond2) {
  42.         $contCondiciones++;
  43.     }
  44.     if ($cond3) {
  45.         $contCondiciones++;
  46.     }
  47.     if ($cond4) {
  48.         $contCondiciones++;
  49.     }
  50.  
  51.     //Validamos todo
  52.     if ($contCheckBox >= 1 && $contCondiciones == 4) {
  53.         //Si se cumple la condicion envio el form
  54.         enviarForm();
  55.     } else {
  56.         /* Si alguno de los checkbox no esta marcado, paso a validar cual es y mostrar
  57.          * cierto mensaje de error.
  58.          * hay muchas formas que se me ocurre, por ejemplo:
  59.          */
  60.         for ($i = 1; $i <= 4; $i++) {
  61.             //Valido los checkbox
  62.             if (!isset($_POST['check' . $i]))
  63.                 echo "<p> El checkBox " . $i . " no se selecciono </p>";
  64.         }
  65.  
  66.         if (!$cond1) {
  67.             echo "<p> Error en la condicion1</p>";
  68.         }
  69.         if (!$cond2) {
  70.             echo "<p> Error en la condicion2</p>";
  71.         }
  72.         if (!$cond3) {
  73.             echo "<p> Error en la condicion3</p>";
  74.         }
  75.         if (!$cond4) {
  76.            echo "<p> Error en la condicion4</p>";
  77.         }
  78.     }
  79. }
  80. ?>
  81.  
  82.  
  83.  
  84. <!DOCTYPE html>
  85. <html>
  86.     <head>
  87.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  88.         <title></title>
  89.     </head>
  90.     <body>
  91. <?php
  92. // put your code here
  93. ?>
  94.         <form action="" method="post">
  95.             <p><input type="checkbox" name="check1" value="" /> check1
  96.                 <input type="text" name="importe-rotura" value="Incompleto"/></p>
  97.  
  98.             <p><input type="checkbox" name="check2" value="" /> check2
  99.                 <input type="text" name="importe-daños" value="Incompleto"/></p>
  100.  
  101.             <p><input type="checkbox" name="check3" value="" /> check3
  102.                 <input type="text" name="importe-derrumbe" value="Incompleto"/></p>
  103.  
  104.             <p><input type="checkbox" name="check4" value="" /> check4
  105.                 <input type="text" name="importe-todo-riesgo" value="Incompleto"/></p>
  106.  
  107.             <input type="submit" name="submit">
  108.         </form>    
  109.     </body>
  110. </html>

P.d: Ando un poco a prisas no me da tiempo de explicarte el codigo en este momento, al ratito nos vemos. Saludos.
___________________________-

Bueno entonces aqui estoy xD.

De la linea 19 a la 30, se válida las condiciones de que los textfield no esten vacios y el valor interno sea diferente de "Incompleto"

>>> Yo te recomiendo hacer un !strcasecmp($_POST['campo'], "Incompleto"); para no hacer distincion entre mayusculas y minusculas

De las lineas 32 a la 36 vemos un ciclo for, con esto nos ahorramos un pedazo de código.

En el caso de la 38 a la 49, no se puede hacer un ciclo para asignar el valor del indice concatenado al nombre de variable ($cond.$i), asi que las condicionales deben ser de ésta forma.

En la linea 52 se cumple la condicion

Si check 1, check 2, check3 y check4 estan marcados y a la vez se cumple si check1 o check2 o check3 o check4, esto porque si alguno de los checks estan marcados el contador tendrá un valor de 1. Y si todos los contadores es igual a 4, tambien se cumple está condición.

bueno es todo un saludo.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Última edición por iovan; 04/08/2011 a las 11:02
  #23 (permalink)  
Antiguo 04/08/2011, 19:40
Avatar de 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
  #24 (permalink)  
Antiguo 04/08/2011, 20:38
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Sigues haciendo mal uso de las condicionales, mas preciso los elseif.

El elseif no funciona para este caso, por ello no hay que usarlo. Olvidate de el.

Verás te podre un ejemplo

Código PHP:
Ver original
  1. $condicion1 = 1;
  2. $condicion2= 2;
  3.  
  4.  
  5. if($condicion==1){
  6.  
  7.  
  8. }
  9.  
  10. elseif($condicion==2){
  11.  
  12.  
  13. }

Lo que va a suceder es que siempre que se cumpla la condicion1, las condicional se termina ahi y no lee las demas condiciones que tenga. En otras palabras, se cumple alguno de los if o elseif de esta condicion y se salta a lo que sigue del código sin tomar en cuenta las demas condicionales de ésta misma condicion.

Espero se entienda, esto es lo que pasaba en tu anterior código. Ahora en el que has puesto pasa algo muy similar.

tienes:

Código PHP:
Ver original
  1. if(isset($_POST['check11'])){
  2.  
  3. }
  4. elseif(isset($_POST['check11'])){
  5.  
  6. }

En este caso, siempre que se haya seleccionado el check11 entrará en la segunda condicional, hara el código que este dentro y saldrá de la condicion. Es por está razón que no debe funcionar, tal vez podría aparentar que funciona y que solo deja de funcionar en el caso de agregar una tercera condicional, pero si observas el flujo verás que no es así.

Por ello, hay que identificar correctamente el problema. Primero que nada identificar que elementos deseas controlar, para qué? y si es optimizado.

Para que controlar de manera individual el comportamiento de algún elemento si no es necesario, no se si este sea el caso pero tenlo en cuenta.

Vamos a repasar. ¿Que comportamiento deseamos obtener?

Tenemos un formulario con X numero de checkbox y X numero de campos de texto, El objetivo es realizar un script capaz de hacer las siguientes válidaciones sin importar el numero de checkbox o de campos de texto.

Teniendo claro esto, vamos a ver que validaciones requerimos. En listarlas:

-> Si los X checkbox estan seleccionados
-> Si al menos un X checkbox esta seleccionado identificar cual es
--> y tienen que:
-> Si los X textfield no estan vacios y son diferentes de "Incompleto"


Creo que es lo que buscas? Si falta alguna otra condición escribela para comenzar a codificar.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #25 (permalink)  
Antiguo 05/08/2011, 02:10
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Te estás complicando de mala manera y, además, me da que hace ya tiempo que ni si quiera piensas las cosas que haces, simplemente pruebas a ciegas en vez de pararte y analizar el problema. Nosotros podemos darte una idea y yo estoy seguro que me pongo y en un par de minutos te doy la solución, pero no te vale de nada, tienes que llegar tú a la solución y eso sólo lo vas a conseguir si prestas atención y, más importante, piensas.

Te doy la guía, lo que tienes que hacer es, una vez montado el if, ver los flujos que habrá para las diferentes ejecuciones. Copio de tu código y te guío:
Código PHP:
Ver original
  1. if (isset($_POST['check11'])) {
  2.         // check11=true
  3.         if (isset($_POST['check12'])) {
  4.             // check11=true, check12=true
  5.             if (isset($_POST['check20'])) {
  6.                 // check11=true, check12=true, check20=true
  7.                 if ($cond1 && $cond2 && $cond3) {
  8.                    // check11=true, check12=true, check20=true, (cond1 && cond2 && cond3)=true. Del último sacamos que cond1=true, cond2=true, cond3=true
  9.                 } else {
  10.                    // check11=true, check12=true, check20=true, (cond1 && cond2 && cond3)=false. Del último sacamos que uno o varios cond (cond1, cond2, cond3) son falsos, al menos uno, pero pueden ser todos.
  11.                 }
  12.             }
  13.         }
  14.     // a partir de aquí, si entra en algún elseif quiere decir que el primer if no se ha cumplido (no ha llegado a un final, luego a partir de aquí (check11 && check12 && check20)=false. Pero esta condición puede ser falsa para cualquier falso de check, como mínimo uno.
  15.     } elseif (isset($_POST['check11'])) {
  16.         // check11=true
  17.         if ($cond1) {
  18.            // check11=true, cond1=true
  19.         } else {
  20.            // check11=true, cond1=false
  21.         }
  22.     // a partir de aquí, check11=false
  23.     } elseif (isset($_POST['check12'])) {
  24.         // check12=true
  25.         if ($cond2) {
  26.            // check12=true, cond2=true
  27.         } else {
  28.            // check12=true, cond2=false
  29.         }
  30.     // a partir de aquí, check12=false
  31.     } elseif (isset($_POST['check20'])) {
  32.         // check20=true
  33.         if ($cond3) {
  34.            // check20=true, cond3=true
  35.         } else {
  36.            // check20=true, cond3=false
  37.         }
  38.     // a partir de aquí, check20= false
  39.     } else {
  40.         // (check11 && check12 && check20)=false, check11=false, check12=false, check20= false
  41.     }

Y ahora te pones casos posibles:
Caso 1: check11=true, check12=true, check20=false, cond1=true, cond2=false, cond3=true
Código PHP:
Ver original
  1. if (isset($_POST['check11'])) { // entra
  2.         if (isset($_POST['check12'])) { // entra
  3.             if (isset($_POST['check20'])) { // no entra, al no entrar se va al final del if
  4.                 if ($cond1 && $cond2 && $cond3) {
  5.  
  6.                 } else {
  7.  
  8.                 }
  9.             } // aquí viene del no entra y sigue
  10.         } // sigue
  11.     } elseif (isset($_POST['check11'])) { // entra
  12.         if ($cond1) { // entra
  13.            // Hace lo que haya aquí
  14.         } else {
  15.  
  16.         }
  17.     } elseif (isset($_POST['check12'])) { // entra
  18.         if ($cond2) { // no entra y se va a else
  19.  
  20.         } else {
  21.            // Hace lo que haya aquí
  22.  
  23.         }
  24.     } elseif (isset($_POST['check20'])) { // no entra y sigue
  25.         if ($cond3) {
  26.  
  27.         } else {
  28.  
  29.         }
  30.     } else { // no entra, porque entró en al menos uno de los otros
  31.  
  32.     }

Eso es un ejemplo de flujo, pero puedes hacer mil. Ya con este te das cuenta de que tu if es desastroso, porque las condiciones de un if tienen que ser excluyentes, es decir, no puede entrar por dos, porque se te descontrola. Y el tuyo está muy descontrolado. Estoy seguro que incluso hay un caso en que entra por todos los ifs (menos el else, obviamente) cosa que es nefasta. Las condiciones de un if deben ser completas y excluyentes. Te pongo un ejemplo:
Código PHP:
Ver original
  1. if ($num < 4) {
  2.  
  3. } else if ($num >= 4 && $num < 20) {
  4.  
  5. } else { // se sobreentiende que $num >= 20
  6.  
  7. }
Este caso es completo y excluyente, porque para cualquier valor de $num entra por un if y, además, sólo por uno.
Código PHP:
Ver original
  1. if ($num < 1) {
  2.  
  3. } else if ($num >= 4 && $num < 20) {
  4.  
  5. } else { // se sobreentiende que $num >= 20
  6.  
  7. }
Este caso no es completo, pero si excluyente, es decir, nunca se entra por dos, pero qué pasa cuando $num está entre 1 y 4? No entra por ninguno, no es completo.
Código PHP:
Ver original
  1. if ($num < 8) {
  2.  
  3. } else if ($num >= 4 && $num < 20) {
  4.  
  5. } else { // se sobreentiende que $num >= 20
  6.  
  7. }
Este caso es completo, pero no excluyente, es decir, siempre entra por alguno, pero qué pasas cuando $num está entre 4 y 8? Que cumple dos condiciones, debería entrar por dos ifs.
Código PHP:
Ver original
  1. if ($num == 5) {
  2.  
  3. } else if ($num >= 4 && $num < 20) {
  4.  
  5. } else if ($num >= 20)
  6.  
  7. } // sin else
Este caso ni es completo ni excluyente. Porque para cualquier valor menor de 4 no entra por ningún if y, además, si $num es 5, cumple las condiciones de los dos primeros.

En serio, replantéate el problema tranquilamente, diferencia las condiciones unas de otras claramente y monta un buen if, te juro es lo más sencillo del mundo. Espero que la explicación te sirva de algo.

Un saludo.

PD: Por el amor de dios, deja de citar textos enteros, porque cada vez que cargo este post mi ordenador echa humo. Simplemente contesta, no hace falta que cites nuestros posts.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Última edición por vgonga1986; 05/08/2011 a las 02:12 Razón: Añadir PD.
  #26 (permalink)  
Antiguo 05/08/2011, 19:38
Avatar de 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 antes que nada muchas gracias de nuevo, excelentes explicaciones y tiempo para la ayuda. He editado post anteriores para que no se cargue tanto la página, y aquí cito solo esta parte (resumida).

Cita:
Iniciado por New Ver Mensaje
Sigues haciendo mal uso de las condicionales, mas preciso los elseif.

El elseif no funciona para este caso, por ello no hay que usarlo. Olvidate de el.

Verás te podre un ejemplo

Código PHP:
Ver original
  1. $condicion1 = 1;
  2. $condicion2= 2;
  3.  
  4.  
  5. if($condicion==1){
  6.  
  7.  
  8. }
  9.  
  10. elseif($condicion==2){
  11.  
  12.  
  13. }

Teniendo claro esto, vamos a ver que validaciones requerimos. En listarlas:

-> Si los X checkbox estan seleccionados
-> Si al menos un X checkbox esta seleccionado identificar cual es
--> y tienen que:
-> Si los X textfield no estan vacios y son diferentes de "Incompleto"
Cita:
Iniciado por vgonga1986 Ver Mensaje
Las condiciones de un if deben ser completas y excluyentes. Te pongo un ejemplo:
Código PHP:
Ver original
  1. if ($num < 4) {
  2.  
  3. } else if ($num >= 4 && $num < 20) {
  4.  
  5. } else { // se sobreentiende que $num >= 20
  6.  
  7. }
Este caso es completo y excluyente, porque para cualquier valor de $num entra por un if y, además, sólo por uno.
Siguiendo todo lo anterior y probando una tras otra, me quedo con esta parte de la explicación, sin embargo por más vueltas que he probado otra vez caigo en lo mismo

Primero empiezo creando condiciones con un if completas y excluyentes o eso creo ya que aquí todo entra bien:

Código PHP:
Ver original
  1. if ((isset($_POST['check11'])) && (isset($_POST['check12'])) && (isset($_POST['check20'])))
  2.     {
  3.         //echo "Está seleccionado el 11";
  4.         echo "Están todos seleccionados";
  5.     }
  6.     //Si está seleccionado el 12
  7.     else if ((isset($_POST['check11'])) || (isset($_POST['check12'])) || (isset($_POST['check20'])))
  8.     {
  9.      echo "Está seleccionado alguno";
  10.     }
  11.     // no está seleccionado ninguno
  12.     else
  13.     {
  14.      echo "Ningún checkbox marcado";
  15.     }

El problema llega cuando tengo que meter las 3 condiciones de los campos condicionados, ahí otra vez vuelvo a lo mismo:

Código PHP:
Ver original
  1. $cond1 = false;
  2.     $cond2 = false;
  3.     $cond3 = false;
  4.     if (!empty ($_POST['prestacion-diaria']) && ($_POST['prestacion-diaria'] != "Incompleto"))
  5.     {
  6.     $cond1 = true;
  7.     }
  8.     if (!empty ($_POST['cirugia-y-tratamientos']) && ($_POST['cirugia-y-tratamientos'] != "Incompleto"))
  9.     {
  10.     $cond2 = true;
  11.     }
  12.     if (!empty ($_POST['cirugia-y-tratamientos2']) && ($_POST['cirugia-y-tratamientos2'] != "Incompleto"))
  13.     {
  14.     $cond3 = true;
  15.     }  
  16.     if ((isset($_POST['check11'])) && (isset($_POST['check12'])) && (isset($_POST['check20'])))
  17.     {
  18.         if($cond1 && $cond2 && $cond3)
  19.         {
  20.             echo "Están todos los campos marcados y correctos";
  21.         }
  22.         else
  23.         {
  24.             echo "Algún campo marcado está incorrecto";
  25.         }
  26.         //echo "Está seleccionado el 11";
  27.         echo "Están todos seleccionados";
  28.     }
  29.     //Si solo alguno o algunos están marcados
  30.     else if ((isset($_POST['check11'])) || (isset($_POST['check12'])) || (isset($_POST['check20'])))
  31.     {
  32.         if($cond1 || $cond2 || $cond3)
  33.         {
  34.             echo "El campo o los campos señalados están correctos";
  35.         }
  36.         else
  37.         {
  38.             echo "El campo señalado o varios de los campos señalados están incorrectos";
  39.         }
  40.         echo "Está seleccionado alguno";
  41.     }
  42.     // no está seleccionado ninguno
  43.     else
  44.     {
  45.      echo "Ningún checkbox marcado";
  46.     }

¿que otra manera puedo usar? La verdad entiendo lo de completo y excluyentes como en el ejemplo de <4, sin embargo en este caso por más que lo intento no logro hacer algo parecido con esos campos condicionados.

Saludos.
  #27 (permalink)  
Antiguo 05/08/2011, 21:54
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Amigo, es que hay mucha redundancia en el código.

La solucion es tan sencilla, algunos ya se han acostumbrado a usar un monton de condicionales a mi en lo personal no me gusta.

Por ejemplo, En este caso el resultado lo podrias obtener en 200 lineas o mas utilizando un manojo de condicionales o en menos de 60 lineas, eso depende de tí.

A mi me gustaría ayudarte, lo único que yo quiero saber es a que le quieres dar control. Es todo.

Porque el código que te puse controla todo, y con una modificacion en 1 linea controlarias hasta el comportamiento de todos los checkbox.

Bueno, un saludo.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Edito.

Que tal ésto:

formulario html
Código HTML:
Ver original
  1. <form action="" method="post">
  2.     <p>check1: <input type="checkbox" name="check1" value="" /> importe-rotura:  
  3.         <input type="text" name="importe-rotura" value="Incompleto"/></p>
  4.  
  5.     <p>check2: <input type="checkbox" name="check2" value="" />  importe-daños
  6.         <input type="text" name="importe-daños" value="Incompleto"/></p>
  7.  
  8.     <p>check3: <input type="checkbox" name="check3" value="" />  importe-derrumbe
  9.         <input type="text" name="importe-derrumbe" value="Incompleto"/></p>
  10.  
  11.     <p>check4: <input type="checkbox" name="check4" value="" /> importe-todo-riesgo
  12.         <input type="text" name="importe-todo-riesgo" value="Incompleto"/></p>
  13.  
  14.     <input type="submit" name="submit">
  15. </form>

El funcionamiento es, si bien entiendo es lo que buscas:

4 checkbox cada uno corresponde a una textfield. Es decir si se marca un checkbox se debe colocar un valor correcto en la textfield correspondiente, y si se coloca un valor correcto en la textfield se debe marcar el checkbox correspondiente.

Nota: el numero de checkbox y texfield pueden aumentar o disminuir tanto se necesite.
script PHP
Código PHP:
Ver original
  1. <?php
  2. $cheakboxes = array("check1", "check2", "check3", "check4");
  3. $textfields = array("importe-rotura", "importe-daños", "importe-derrumbe", "importe-todo-riesgo");
  4.  
  5. $error = $cont_cheakbox = $cont_textfields = 0;
  6.  
  7. function enviarForm() {
  8.     echo "Mando el formulario";
  9. }
  10.  
  11. foreach ($cheakboxes as $key => $valor) {
  12.     if (isset($_POST[$valor]))
  13.         $cont_cheakbox++;
  14. }
  15. foreach ($textfields as $key => $valor) {
  16.     if (!empty($_POST[$valor]) && $_POST[$valor] != "Incompleto")
  17.         $cont_textfields++;
  18. }
  19.  
  20. if (isset($_POST['submit'])) {
  21. //Todos los cheakbox estan marcados por lo tanto todos los textfield tambien deben estarlo, (validar)
  22.     if ($cont_cheakbox == count($cheakboxes)) {
  23.         //Valido que todas las textfield esten correctas, en caso de que haya una que no lo este muestro cual
  24.         if ($cont_textfields == count($textfields)) {
  25.             enviarForm();
  26.         } else if ($cont_textfields > 0) {
  27.             foreach ($textfields as $key => $value) {
  28.                 if(isset($_POST[$cheakboxes[$key]]) && (empty($_POST[$textfields[$key]]) || $_POST[$textfields[$key]] == "Incompleto"))
  29.                     echo "<p>Has seleccionado el checkbox " . $cheakboxes[$key] . " por lo tanto tienes que escribir algo en " . $textfields[$key] . "</p>";
  30.             }
  31.         } else {
  32.             echo "<p>Debes corregir todos los textfields</p>";
  33.         }
  34.     } else if ($cont_cheakbox == 0) {
  35.         //Si ningun checkbox se ha seleccionado,
  36.         if($cont_textfields == 0){
  37.             echo "<p>Debe llenar el formulario</p>";
  38.         }
  39.         else if ($cont_textfields > 0) {
  40.             //1.- Valido si se hay una textfield correcta cuyo checkbox no haya sido marcado
  41.             foreach ($textfields as $key => $value) {
  42.                 if( !isset($_POST[$cheakboxes[$key]]) && (!empty($_POST[$textfields[$key]]) && $_POST[$textfields[$key]] != "Incompleto"))
  43.                     echo "<p>Has escrito algo en " . $textfields[$key] . " por lo tanto debes marcar el checkbox " . $cheakboxes[$key]."</p>";
  44.             }
  45.         }
  46.     } else {
  47.         //Ahora si se selecciona por lo menos 1 checkbox
  48.         //Valido cual checkbox se ha seleccionado y verifico que su textfield tambien este correcto
  49.         foreach ($cheakboxes as $key => $value){
  50.             if(isset($_POST[$cheakboxes[$key]]) && (empty($_POST[$textfields[$key]]) || $_POST[$textfields[$key]] == "Incompleto")){
  51.                 echo "<p>Has seleccionado el checkbox " . $cheakboxes[$key] . " por lo tanto tienes que escribir algo en " . $textfields[$key] . "</p>";
  52.                 $error++;
  53.             }
  54.             //Verifico ahora si lo que no esta correcto es que se haya puesto correcto el textfield pero no se haya seleccionado el checkbox
  55.             else if( !isset($_POST[$cheakboxes[$key]]) && (!empty($_POST[$textfields[$key]]) && $_POST[$textfields[$key]] != "Incompleto")){
  56.                 echo "Has escrito algo en " . $textfields[$key] . " por lo tanto debes marcar el checkbox " . $cheakboxes[$key];
  57.                 $error++;
  58.             }
  59.         }
  60.        
  61.         if($error==0){
  62.             enviarForm();
  63.         }
  64.     }
  65. }
  66. ?>

Las primeras 2 lineas tenemos

Código PHP:
Ver original
  1. $cheakboxes = array("check1", "check2", "check3", "check4");
  2. $textfields = array("importe-rotura", "importe-daños", "importe-derrumbe", "importe-todo-riesgo");

Se tratan de 2 arreglos, uno para los nombres de los checkbox y el otro para guardar los nombres de las textfields

Aqui puedes aumentar o disminuir el numero de campos a validar, siempre y cuando se respete que cualquiera de los 2 arreglos es directamente proporcional al otro en tamaño.

Esta duda ya te ha tomado bastante tiempo y es muy sencilla como para que nosotros no la podamos resolver en una sentada haha. Yo me he tardado al rededor de 15 minutos espero esta vez si te haya ayudado por que si no, entonces me despido del tema ya hice todo lo que pude.

Te prometí menos de 60 lineas (por decir un número) pero te he dado 66. Supongo que no hay problema.

P.D: Si le quitamos las 7 de comentarios serian 59 lineas de codigo, curiosamente he cumplido con lo dicho

haha Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Última edición por iovan; 06/08/2011 a las 01:03
  #28 (permalink)  
Antiguo 06/08/2011, 05:14
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

El problema es que él no quiere eso, ahí haces que cada campo valide si está relleno y el check marcado, pero él también decía marcar sólo uno, pero que todos los text estuvieran rellenos y cosas así, por eso yo en su momento le dije que se replanteara las situaciones de acierto y de fallo, no las condicionales, porque el error no era que las condicionales estuvieran mal, sino que el plantamiento estaba mal, porque realmente se podrían dar situaciones en que validase por dos motivos, cosa que ya es errónea.

En fin, si con eso le vale, perfecto, pero habrá cambiado las situaciones, tal y como yo le dije.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #29 (permalink)  
Antiguo 06/08/2011, 09:31
Avatar de 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.
  #30 (permalink)  
Antiguo 06/08/2011, 10:33
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Evitar envio de formulario con checkbox marcado con otro campo input vacio

Este tema me está rayando sobremanera, así que es lo último que voy a comentar. Cambias las condiciones a cada post que escribes y nos estás volviendo loco. Yo te propongo, por qué no validas por separado los campos?

Cita:
// 1) Si un checkbox o varios están marcados y completos se envian (también pueden ser los 4)
// 2) Pero si uno o varios checkbox están marcados e incorrectos no se envian
// 3) Si ninguno está marcado no se envia
Aquí veo que los check y campos son independientes entre si, salvo por 3). Es decir, se envían los buenos y los malos no se envían siempre que al menos haya uno bueno. Si todos son malos, falla la validación. Tratando cada check por separado tienes cuatro casos:
CASO 1: el check marcado y bien relleno: se envía el valor.
CASO 2: el check marcado, pero mal relleno (o sin rellenar): no se envía el valor, pero el formulario sí puede enviarse en caso de que haya otro check correcto.
CASO 3: el check no marcado, pero relleno: se pierde el valor, por no marcar el check.
CASO 4: el check no marcado y mal relleno (o sin rellenar): es correcto, el formulario seguirá enviándose con este campo vacío siempre que haya otro check correcto.

Pues esto se pasa a código:
Código PHP:
Ver original
  1. // Repetir este trozo por cada check que exista...
  2. $message1 = "";
  3. $check1 = false;
  4. if (isset($_post['check1'])) {
  5.     if (($_POST['text1]) != "") && ($_POST['text1'] != "Incompleto")) {
  6.        echo "CASO 1: check1 marcado y relleno";
  7.        $message1 = "El formulario está bien validado (se marcó el check1 y se rellenó el campo correspondiente), el valor se enviará correctamente.";
  8.        check1 = true;    // Ponemos a true el campo para saber que se envía este check, en cualquier otro caso (check1 == false) se enviará vacío.
  9.    } else {
  10.        echo "CASO 2: check1 marcado, pero sin rellenar";
  11.        $message1 = "Lo siento, has marcado el check1, pero el campo no está relleno o contiene Incompleto.";
  12.    }
  13. } else {
  14.    if (($_POST['text1']) != "") && ($_POST['text1'] != "Incompleto")) {
  15.        echo "CASO 3: check1 no marcado, pero relleno";
  16.        &message1 = "Cuidado, amigo!!! Ha rellenado el campo de texto con un valor correcto, pero se ha olvidado marcar el check1, el valor no se enviará.";
  17.    } else {
  18.        echo "CASO 4: check1 no marcado y sin rellenar";
  19.        $message1 = "El formulario está bien validado (el check1 no se marcó y no hay valor en el campo de texto). El registro se guardará con el campo vacío";
  20.    }
  21. }
  22. // ...hasta aquí.
  23.  
  24. // A la hora de enviarlo
  25. if (check1 || check || check3 || ... ) // Al menos tiene que haber uno correcto para que se envíe el formulario, con los incorrectos o sin rellenar a vacío.
  26.    $sql = "INSERT INTO Tabla (text) VALUES ('";
  27.    if (check) {
  28.        $sql .= $_POST['text'];
  29.    } else {
  30.        $sql .= "";    // Si no validó con relleno, se envía vacío el campo
  31.    }
  32.    $sql .= "')";
  33. } else {
  34.    echo "ERRORRRRRR!!!!! El formulario no se envía, no hay ninguno correcto".
  35. }

Y ya. La versión que ofrecía New, era similar, salvo que mete en un bucle for, usando en vez de check1, check2, check3... un array de checks, de forma que comprueba check[1], check[2], check[3]... y se puede meter todo en un bucle para check[$i]. También puedes hacerlo aquí, en vez de copiar y pegar el código para cada check, puede hacer un bucle, pero eso ya te lo dejo a ti. Yo lo siento mucho, pero me retiro de este post, ya le he dedicado suficiente y creo que con lo que tienes aquí tienes de sobra para montar cualquier if que se te ocurra. Si no eres capaz, pues es que no lo planteas bien, pero ya no se puede enseñar más. Por mucho que quiera, no puedo obligarte a entenderlo, o lo entiendes o no.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?

Etiquetas: checkbox, envio, input, vacio, formulario, variables, campos
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 07:01.