Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/07/2011, 10:48
Avatar de kahlito
kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años, 9 meses
Puntos: 65
Respuesta: Problema con checkbox e input unidos y condicionados

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
  1. <input type="checkbox" value="Hospitalización y convalecencia" name="check11" <?php
  2. if (isset($_POST['check11']) && $_POST['check11'] =="Hospitalización y convalecencia") { echo " checked='checked'"; }?>  />
  3. Hospitalización y convalecencia (indicar prestación diaria: elegir de un importe 6 a 60 eur /dia)
  4. <input type="text" id="prestacion-diaria" name="prestacion-diaria"
  5. <?php
  6. $prestaciondiaria=$_POST['prestacion-diaria'];
  7. if($_POST['enviar'])// Preparo para hacer el envio
  8.     {
  9.     // marcado
  10.     if (isset($_POST['check11'])) // Si existe check11
  11.         {    
  12.         // Si existe prestacion diaria y el campo está vacio o indica Incompleto
  13.         if (isset($_POST['prestacion-diaria']) && $_POST['prestacion-diaria'] == "" || $_POST['prestacion-diaria'] == "Incompleto" )
  14.         // Aviso de Incompleto
  15.         {echo "value=\"Incompleto\""; echo ' class="aviso-formulario"'; }
  16.         // Si existe prestacion diaria y el campo no está vacio y es distinto a Incompleto     
  17.         elseif (isset($_POST['prestacion-diaria']) && $_POST['prestacion-diaria'] != "" && $_POST['prestacion-diaria'] != "Incompleto")
  18.         // Muestro o mantengo el valor actual de prestación diaria
  19.         //{echo "value=\"$_POST['prestacion-diaria']\"";}
  20.         {echo "value=\"$prestaciondiaria\"";}      
  21.     }
  22.     // Si no está marcado el check box dejar el campo prestación diaria como vacio  
  23.     elseif (isset($_POST['check11']) == "" && $_POST['prestacion-diaria'] != "")
  24.         {echo 'value=""';}
  25.        
  26.     }
  27. ?>
  28. />

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
  1. //{echo "value=\"$_POST['prestacion-diaria']\"";}

He tenido que solucionarlo así:

Código PHP:
Ver original
  1. $prestaciondiaria=$_POST['prestacion-diaria'];
  2. {echo "value=\"$prestaciondiaria\"";}

¿Por qué me daba error el primero utilizando directamente $_POST['prestacion-diaria']?

Saludos.