Ver Mensaje Individual
  #20 (permalink)  
Antiguo 11/06/2012, 13:09
caitoss
 
Fecha de Ingreso: noviembre-2003
Mensajes: 78
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Checkbox por grupos en tabla dinámica

Listo Diamari:
puedes ver funcionando tu script con valores extraidos de aplicación en php y sus based de dtos( que me inventé para esta prueba en este enlace
http://rsaralegui.com/modules.php?name=Addon_Sample
Solo tuve que hacer unos pequeños cambios a tu propuesta:
  • Meter como value de los allbox de los módulos el título de los mismos a partir del array de títulos que generé como cabecera: $modid[$n]<input name="allbox[]" onclick="CheckAll(this);" type="checkbox" value="$modid[$n]" >
  • Crear una var miModulo y, siguiento tu procedimiento compararlo con los value de a_permiso. Para ello tuve que calcular la long. de garacteres y extraerle 4 pues las $bs siempre tienen 4 caracteres mientras que los títulos tienen una log. variable.

La realidad es que con este asunto he conocido algo el lenguaje javascript (yo lo manejo muy poco) y creo que voy a leer cuando tenga algún tiempo libre pues parace muy interesante.
Bueno Diamari quiero que sepas que sin tu ayuda no podría haber terminado con esto por lo que me siento muy agradecido y quedo a tu disposición para lo que consideres oportuno.
Saludos y muchas gracias.



El script quedaría así:

function CheckAll(cajaCheck) {
if (cajaCheck == document.peruid['allbox[]'][0]){
for (var i=0;i<document.peruid['a_permiso[]'].length;i++){
document.peruid['a_permiso[]'][i].checked = cajaCheck.checked;}
}else{
for (var i=1;i<document.peruid['allbox[]'].length;i++){
var miModulo= document.peruid['allbox[]'][i].value;
if(cajaCheck == document.peruid['allbox[]'][i]){
for (var j=0;j<document.peruid['a_permiso[]'].length;j++){
var numCa = document.peruid['a_permiso[]'][j].value.length;
var numC= numCa-4;
var miValor = document.peruid['a_permiso[]'][j].value.substring(0,numC);
if(miValor == miModulo){
document.peruid['a_permiso[]'][j].checked = cajaCheck.checked;
}
}
}
}
}
}