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<?php
if(isset($_POST['enviar']))//Si pulso enviar {
// Si importe diario no está vacio y existe check2
if(!empty($_POST['importe-diario']) && isset($_POST['check2'])) {
// Si check1 o check2 no están vacios y nombre no está vacio o Incompleto
if( $_POST['check1'] != "" or $_POST['check2'] != "" && $_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto")
// Se envia
{
//------------------ Aquí preparo el envio
// asunto
$asunto = 'Formulario de contacto - Salud';
// mensaje
$mensaje = "Nombre: " .$_POST['nombre']. "\n";
//$mensaje .= "Coberturas: ";
for($i=1; $i<=$_POST['cantidad']; $i++)
{
$key= "check".$i;
//echo $_POST[$key]."\n";
{$mensaje .= "Coberturas: $_POST[$key]. \n";}
}
// Si check2 existe
if (isset($_POST['check2'])) {
// Si existe importe diario y el campo no está vacio o indica Incompleto
if ($_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")
{
$mensaje .= "Importe diario de Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. : " .$_POST['importe-diario']. "\n";
}
}
//----------------------------
$enviando_datos=mail($para, $asunto, $mensaje, $cabeceras); if($enviando_datos==true)
{
header("Location: http://web.es/respuesta.php"); }
else
{
//El Mensaje no se pudo enviar
}
//------------------ Aquí cierro el envio de email
}}
// Si check2 está vacio
elseif(empty($_POST['check2'])) {
// Si check1 o check2 no están vacios y nombre no está vacio o Incompleto
if( $_POST['check1'] != "" or $_POST['check2'] != "" && $_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto")
// Se envia
{
//------------------ Aquí preparo el envio
// asunto
$asunto = 'Formulario de contacto - Salud';
// mensaje
$mensaje = "Nombre: " .$_POST['nombre']. "\n";
//$mensaje .= "Coberturas: ";
for($i=1; $i<=$_POST['cantidad']; $i++)
{
$key= "check".$i;
//echo $_POST[$key]."\n";
{$mensaje .= "Coberturas: $_POST[$key]. \n";}
}
// Si check2 existe
if (isset($_POST['check2'])) {
// Si existe importe diario y el campo no está vacio o indica Incompleto
if ($_POST['importe-diario'] != "" && $_POST['importe-diario'] != "Incompleto")
{
$mensaje .= "Importe diario de Asistencia complementaria familiar con Hospitalización diaria por enfermedad o accidente. : " .$_POST['importe-diario']. "\n";
}
}
//----------------------------
$enviando_datos=mail($para, $asunto, $mensaje, $cabeceras); if($enviando_datos==true)
{
header("Location: http://web.es/respuesta.php"); }
else
{
//El Mensaje no se pudo enviar
}
//------------------ Aquí cierro el envio de email
}}
// Cierro el envio total
}
?>
Resumiendo:
Código PHP:
Ver original// Si importe diario no está vacio y existe check2
if(!empty($_POST['importe-diario']) && isset($_POST['check2'])) {
//acción
}
//o
// Si check2 está vacio
elseif(empty($_POST['check2'])) {
//acción
}
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// Si importe diario no está vacio y existe check2
if(!empty($_POST['importe-diario']) && isset($_POST['check2'])) if(!empty($_POST['importe-diari3o']) && isset($_POST['check3'])) {
//acción
}
//o
// Si check2 está vacio
if(empty($_POST['check2'])) if(empty($_POST['check3'])) {
//acción
}
¿Podría seguir la misma fórmula o tengo que cambiar también la anterior?