Foros del Web » Programando para Internet » PHP »

Ejecutar una condicion IF al marcar o desmarcar un checkbox

Estas en el tema de Ejecutar una condicion IF al marcar o desmarcar un checkbox en el foro de PHP en Foros del Web. Buenos días a tod@s. Primero pido disculpas por si el problema que planteo no es de este foro, si así fuera rogaria que lo cambiaran ...
  #1 (permalink)  
Antiguo 31/08/2014, 03:46
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Ejecutar una condicion IF al marcar o desmarcar un checkbox

Buenos días a tod@s.

Primero pido disculpas por si el problema que planteo no es de este foro, si así fuera rogaria que lo cambiaran al foro adecuado, dicho esto expongo mi problema cuyo código he reducido al maximo con la finalidad de que sea mas claro.

Tengo un formulario con una serie de campos, los mismos tienen una ayuda que funciona perfectamente.
Código:
<form action="Enviar_FormularioPersonal.php" method="post">
  <div id="LabNombrePersonal" class="cabecerasformularioPersonal">Nombre :
    <input type="text" name="nombrepersonal" class="Contenido2forpersonal" maxlength="30"  size="20"/>&nbsp;<img src="images/Estrella.gif" width="10" height="7"><img style="vertical-align: bottom" src="images/ayuda1.png" alt="Ayuda" onmouseover="muestraAyudaArriba3(event, 'Nombre Personal')"></div>
// aquí resto de campos, etc...
<div id="BotonIngresarPersonal"><input type="submit" value="Ingresar"  class="BotonIngresarforpersonal"/>
</form>
Lo que quiero hacer es poner un checkbox en la misma página y que el usuario lo marque si quiere disponer de la ayuda o lo desmarque si no precisa de la ayuda o le es molesta, he probado algo así pero no me funciona.
Código:
<form action="Enviar_FormularioPersonal.php" method="post">
<input type="checkbox" name="activarayuda" value="1" />
 <?php
 if (("activarayuda") == '1')
 {
 ?>
  <div id="LabNombrePersonal" class="cabecerasformularioPersonal">Nombre :
    <input type="text" name="nombrepersonal" class="Contenido2forpersonal" maxlength="30"  size="20"/>&nbsp;<img src="images/Estrella.gif" width="10" height="7"><img style="vertical-align: bottom" src="images/ayuda1.png" alt="Ayuda" onmouseover="muestraAyudaArriba3(event, 'Nombre Personal')"></div>
// aquí resto de campos, etc...
   <?php 
   }else{
   ?>
  <div id="LabNombrePersonal" class="cabecerasformularioPersonal">Nombre :
    <input type="text" name="nombrepersonal" class="Contenido2forpersonal" maxlength="30"  size="20"/></div>
// aquí resto de campos, etc...
    <?php
    }
    ?>
     <div id="BotonIngresarPersonal"><input type="submit" value="Ingresar"  class="BotonIngresarforpersonal"/>
</form>
Por supuesto no funciona, necesito vuestra ayuda, he buscado por varios sitios y no he encontrado la forma de solucionarlo, espero que me podais ayudar.
Un saludo.
__________________
¿Hay algo mas hermoso que ayudar.?
  #2 (permalink)  
Antiguo 31/08/2014, 11:02
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Ejecutar una condicion IF al marcar o desmarcar un checkbox

por lo que veo la ayuda solo son imágenes, yo veo 3 opciones, la recomendada o al menos la que usaría para tu caso, seria usar javascript para agregar o remover elementos según la condicional.

otra opción en caso de que esta ayuda requiera cierto dinamismo y/o lo estés trayendo de una base de datos... es cargar nuevo contenido con ajax.

y por ultimo seria usando php en cuyo caso tendrías que enviar el formulario por post o get al cambiar la opción, de esa forma podrías capturar la opción seleccionada con $_POST O $_GET
  #3 (permalink)  
Antiguo 31/08/2014, 13:02
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Ejecutar una condicion IF al marcar o desmarcar un checkbox

Hola ArturoGallegos

Primero la ayuda no son solo imagenes es tambien texto, pero el problema no es ese ya que como comento funciona perfectamente, lo que preciso es que dependiendo de seleccionar o darle un valor a un checbox marcandolo me cumpla una condicion If/select.
Si el valor es '0' o false me presentas en el formulario esto y si es '1' o true me presentas esto otro, creo que el planteamiento es facil de entender, aunque yo no se como hacerlo funcionar

la segunda de tus opciones me podria valer ( lo de cargar el nuevo contenido con Ajax) no se como hacerlo porque no domino el ajax para nada, pero si me puedes ayudar con el código tan corto que he puesto no sabes como te estaria agradecido.

La tercera enviar el formulario para recoger en una variable por $_POST o $_GET el valor del checkbox no me vale ya que en ese caso para hacerlo ya el usuario habria rellenado el formulario completo y lo que preciso es que si el usuario precisa ayuda para rellenarlo solo marcando el checkbox tenga dicha ayuda para rellenar el formulario.

Bueno ArturoGallegos espero me puedas ayudar, creo que la segunda opción tuya es la que mas me gusta, pero no se hacerla.

Un saludo.
__________________
¿Hay algo mas hermoso que ayudar.?
  #4 (permalink)  
Antiguo 31/08/2014, 13:22
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Ejecutar una condicion IF al marcar o desmarcar un checkbox

mete el contenido de la ayuda en un div o cualquier etiqueta y ponle un id, luego con javascript chequeas el estado de la casilla y le cambias la propiedad display y esta listo. asi no tienes que enviar peticiones al server y tambien te evitas el if de php
__________________
http://www.roglastudios.es

Última edición por Dalam; 31/08/2014 a las 13:30
  #5 (permalink)  
Antiguo 01/09/2014, 01:02
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 3 meses
Puntos: 7
Respuesta: Ejecutar una condicion IF al marcar o desmarcar un checkbox

Gracias Dalam

Asi es como lo voy a probar de momento, como cada ayuda esta dentro de su div, voy a duplicar todos los divs que son muchos (mas de 100 por formulario) unos con ayuda y los duplicados sin la ayuda y voy a probar con la propiedad display si puedo conseguir hacerlo.

Aunque esta forma de hacerlo no me parece la mas adecuada ni la mas elegante, pero ante la imposibilidad de poder hacerlo de otra manera, si nadie me da otra solución lo voy a intentar de esta forma.

Un saludo
__________________
¿Hay algo mas hermoso que ayudar.?
  #6 (permalink)  
Antiguo 01/09/2014, 01:47
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Ejecutar una condicion IF al marcar o desmarcar un checkbox

Meditando la opción de Dalam se me ocurrió que es mejor con puro CSS

Aquí te dejo un ejemplo rápido, ten en cuenta que es ilustrativo y yo solo afecto 1 elemento, pero no es una regla... tu puedes afectar a uno o muchos elementos en el mismo paso... analizalo y ve si te sirve.

Código HTML:
Ver original
  1. <label for="help1" class="help">?</label><input type="text" /><input type="checkbox" class="hide" id="help1" /><span>Aqui tienes un poco de ayuda</span>

Código CSS:
Ver original
  1. .help{display:inline-block;width:18px;height:18px;background:#333;color:#fff;border-radius:9px;text-align:center;cursor:pointer;margin:0 5px;}
  2. input[type="checkbox"],input[type="checkbox"]+span{display:none;}
  3. input[type="checkbox"]:checked+span{display:inline-block;}

Etiquetas: checkbox, formulario, marcar
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 23:50.