Hola.
Estoy haciendo un formulario el cual tiene una casilla donde indica si hay otros conductores o no y a la vez si elige que hay otro conductor se incluye otro formulario con nuevos datos.
El formulario normal resumido sería así:
Código HTML:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<legend>Tomador</legend>
<fieldset>
<legend>Datos personales</legend>
<!-- TEXT -->
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre" value="<?php if(isset($_POST['nombre']) && $_POST['nombre'] == "") {echo "Incompleto";} else {echo $_POST['nombre'];} ?>" class="fondo-input" /><br />
<label for="otrosconductores">Existen otros conductores: </label>Si: <input type="radio" value="Si" name="otrosconductores" <?php
if (isset($_POST['otrosconductores']) && $_POST['otrosconductores'] == Si) { echo " checked='checked'"; }?> />
No: <input type="radio" value="No" name="otrosconductores" <?php
if (isset($_POST['otrosconductores']) && $_POST['otrosconductores'] == No) { echo " checked='checked'"; }?> /><br />
<label for="garaje">Garaje:</label>
<input type="radio" value="si" name="garaje"<?php
if (isset($_POST['garaje']) && $_POST['garaje'] == si) { echo " checked='checked'"; }?> />Si:
<input type="radio" value="no" name="garaje"<?php
if (isset($_POST['garaje']) && $_POST['garaje'] == no) { echo " checked='checked'"; }?> />No:<br />
</fieldset>
<?php
if (isset($_POST['otrosconductores']) && $_POST['otrosconductores'] == Si)
{
include('nombre-otro-conductor.php');
}
?>
<input type="submit" value="Enviar" name="enviar" />
</form>
y entonces si el usuario al enviar marca Sí pues se añade este:
Código HTML:
<legend>Segundo conductor</legend>
<fieldset>
<legend>Datos segundo conductor</legend>
<!-- TEXT -->
<label for="nombre2">Nombre:</label>
<input type="text" id="nombre2" name="nombre2" value="<?php if($_POST['nombre2'] == "") {echo "Incompleto";} else {echo $_POST['nombre2'];} ?>" class="fondo-input" /><br />
</fieldset>
<?php
if(isset($_POST['enviar']))
{
if($_POST['nombre2'] == "" or $_POST['nombre2'] == "Incompleto")
{echo "<p>Faltan campos del segundo conductor</p>";}
}
?>
En el encabezado del primero recojo los datos de esta forma:
Código PHP:
Ver original<?php
if(isset($_POST['enviar'])) {
if(isset($_POST['nombre2']) && $_POST['nombre2'] != "" && $_POST['nombre2'] != "Incompleto") if($_POST['nombre'] != "" && $_POST['nombre'] != "Incompleto" && $_POST['otrosconductores'] != "" && $_POST['garaje'] != "")
{
//------------------ Aquí preparo la función mail
// asunto
$asunto = 'Formulario de contacto';
// mensaje
$mensaje = "Nombre: " .$_POST['nombre']. "\n";
$mensaje .= "Otros conductores: " .$_POST['otrosconductores']. "\n";
if($_POST['otrosconductores']== Si)
{$mensaje .= "Nombre segundo conductor: " .$_POST['nombre2']. "\n";}
$mensaje .= "Garaje: " .$_POST['garaje']. "\n";
//----------------------------
$enviando_datos=mail($para, $asunto, $mensaje, $cabeceras); if($enviando_datos==true){
header("Location: http://..."); }
else{
//El Mensaje no se pudo enviar
}
}
}
?>
Y así solo se envía cuando
Sí ['otrosconductores'] está activo.
Si vuelvo a quitar la siguiente línea se envía de las dos maneras pero claro entonces no espera a recoger los datos del segundo conductor:
Código PHP:
Ver originalif(isset($_POST['nombre2']) && $_POST['nombre2'] != "" && $_POST['nombre2'] != "Incompleto")
¿Como puedo hacer que también lo envíe con el
No ['otrosconductores'] marcado?
Saludos.