Hola de nuevo, he vuelto a probar paso a paso y ya me va correctamente. Por fin también me guarda el valor del input en el caso de estar marcado el checkbox y que no indique "Incompleto":
Código PHP:
Ver original<input type="checkbox" value="Hospitalización y convalecencia" name="check11" <?php
if (isset($_POST['check11']) && $_POST['check11'] =="Hospitalización y convalecencia") { echo " checked='checked'"; }?> />
Hospitalización y convalecencia (indicar prestación diaria: elegir de un importe 6 a 60 eur /dia)
<input type="text" id="prestacion-diaria" name="prestacion-diaria"
<?php
$prestaciondiaria=$_POST['prestacion-diaria'];
if($_POST['enviar'])// Preparo para hacer el envio
{
// marcado
if (isset($_POST['check11'])) // Si existe check11 {
// Si existe prestacion diaria y el campo está vacio o indica Incompleto
if (isset($_POST['prestacion-diaria']) && $_POST['prestacion-diaria'] == "" || $_POST['prestacion-diaria'] == "Incompleto" ) // Aviso de Incompleto
{echo "value=\"Incompleto\""; echo ' class="aviso-formulario"'; }
// Si existe prestacion diaria y el campo no está vacio y es distinto a Incompleto
elseif (isset($_POST['prestacion-diaria']) && $_POST['prestacion-diaria'] != "" && $_POST['prestacion-diaria'] != "Incompleto") // Muestro o mantengo el valor actual de prestación diaria
//{echo "value=\"$_POST['prestacion-diaria']\"";}
{echo "value=\"$prestaciondiaria\"";}
}
// Si no está marcado el check box dejar el campo prestación diaria como vacio
elseif (isset($_POST['check11']) == "" && $_POST['prestacion-diaria'] != "") {echo 'value=""';}
}
?>
/>
Todo bien sin embargo tenía un pequeño error que no sabía arreglar aquí y me daba error de sintaxis:
Código PHP:
Ver original//{echo "value=\"$_POST['prestacion-diaria']\"";}
He tenido que solucionarlo así:
Código PHP:
Ver original$prestaciondiaria=$_POST['prestacion-diaria'];
{echo "value=\"$prestaciondiaria\"";}
¿Por qué me daba error el primero utilizando directamente $_POST['prestacion-diaria']?
Saludos.