Foros del Web » Programando para Internet » Jquery »

Checkbox dependientes

Estas en el tema de Checkbox dependientes en el foro de Jquery en Foros del Web. Hola amigos de forosdelweb, esta ves necesitando saber cual es al forma de poder hacer unos checkbox dependientes, tengo varias tablas relacionadas, lo que deseo ...
  #1 (permalink)  
Antiguo 13/08/2014, 08:25
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 10 meses
Puntos: 0
Sonrisa Checkbox dependientes

Hola amigos de forosdelweb, esta ves necesitando saber cual es al forma de poder hacer unos checkbox dependientes, tengo varias tablas relacionadas, lo que deseo es que al seleccionar un checkbox me aparescan otros checkbox que dependen de este, si selecciono otro checkbox pues que me aparescan sus chekcbox respectivos, algo asi como los combos dependiente, la verdad no tengo mucha idea de como hacerlo (no manejo mucho jquery) y necesito alguien que me de una guia o pista (o en todo caso algo ya hecho xD), gracias de ante mano.
  #2 (permalink)  
Antiguo 13/08/2014, 12:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Checkbox dependientes

Ahora mismo imagino en varias formas de hacerlo, una de ellas consistiría en tener los checkbox dependientes en contenedores cuya clase sea igual que el identificador del checkbox padre, de este modo, cuando marques un checkbox padre, muestras al contenedor cuya clase coincida con el identificador del checkbox marcado.

Código HTML:
Ver original
  1. <section id = "principal">
  2.     Checkbox A: <input type = "checkbox" id = "a" />
  3.     Checkbox B: <input type = "checkbox" id = "b" />
  4.     Checkbox C: <input type = "checkbox" id = "c" />
  5.  
  6. <section id = "secundario">
  7.     <div class = "a">
  8.         A<input type = "checkbox" />
  9.         A<input type = "checkbox" />
  10.         A<input type = "checkbox" />
  11.     </div>
  12.     <div class = "b">
  13.         B<input type = "checkbox" />
  14.         B<input type = "checkbox" />
  15.         B<input type = "checkbox" />
  16.     </div>
  17.     <div class = "c">
  18.         C<input type = "checkbox" />
  19.         C<input type = "checkbox" />
  20.         C<input type = "checkbox" />
  21.     </div>

Código CSS:
Ver original
  1. div{
  2.     display: none;
  3. }

Código Javascript:
Ver original
  1. $("#principal [type=checkbox]").click(function(){
  2.     var self = this;
  3.     $("#principal [type=checkbox]").each(function(index, checkbox){
  4.         checkbox.checked = checkbox == self ? true : false;
  5.     });
  6.     $("#secundario div").each(function(index, div){
  7.         div.style.display = div.className == self.id ? "block" : "none";
  8.     });
  9. });

Y para que el checkbox anteriormente marcado no quede así, recorro al conjunto de checkbox padre y en la iteración, dejo marcado al checkbox que coincida con el que acabamos de marcar, tomando así un comportamiento similar al de los radiobutton.



Imagino que esto podría simplificarse, pero es solo una de las tantas alternativas de solución.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 13/08/2014, 15:48
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Checkbox dependientes

Hola Alexis88, gracias por responder, bueno la idea esta por ahi pero cuando marco otro checkbox no desaparesca el que se marco anteriormente como en tu ejemplo, sino que aparescan todos los checkbox relacionados, por ejemplo amrco el A aparescan los secundarios del A si tambien marco el c aparescan tambien los secundarios del C y estos jalarlos desde una tabla en BD ya que tengo muchos cheackbox secundarios.
  #4 (permalink)  
Antiguo 13/08/2014, 16:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Checkbox dependientes

En ese caso, la figura cambia un poco.

Código Javascript:
Ver original
  1. $("#principal [type=checkbox]").click(function(){
  2.     if (this.checked) $("#secundario ." + this.id).show();
  3.     else $("#secundario ." + this.id).hide();
  4. });

Lo que hago es mostrar al <div> cuya clase coincida con el id del checkbox padre marcado, mientras que procedo a ocultarlo cuando lo desmarque.



Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 13/08/2014 a las 16:12 Razón: Eficiencia
  #5 (permalink)  
Antiguo 13/08/2014, 17:00
Avatar de giancarloffi  
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Checkbox dependientes

claro en si la idea es esa aca un ejemplo cuando lo hice con unas cajas de texto:

Código PHP:
$(function() {
    $(
'.ck').on('click', function() {
        if ( $(
this).is(':checked') )
        {
            $(
'#patologiapersonal' + $(this).val()).css({'display':'block'});
        }
        else {
            $(
'#patologiapersonal' + $(this).val()).css({'display':'none'});
        }
    })
}); 
pero los checkbox tanto principales como secundarios los jalo de una base de datos y los muestro con un foreach, mi duda mas viene por ahi:(
  #6 (permalink)  
Antiguo 13/08/2014, 17:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Checkbox dependientes

No veo cual es el inconveniente, pues bastaría que al momento de crear los contenedores con los checkbox hijos, le asignes el identificador respectivo a cada contenedor para que tu función surta efecto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: checkbox, dependientes
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 21:25.