Problema leer elementos de formulario

Tema en 'Casos Resueltos Informáticos' iniciado por VenenoxHC, 22 Nov 2012.

Estado del Tema:
Cerrado para nuevas respuestas
  1. VenenoxHC

    VenenoxHC Usuario Casual nvl. 2
    187/244

    Registrado:
    30 Nov 2008
    Mensajes:
    1.798
    Me Gusta recibidos:
    1
    Hi for all,

    Hoy tengo un evento mas o menos.

    tengo que leer elementos de formulario que estén dentro de una tabla,,, o div,,,

    Miren tengo un check que marca y desmarca todos los check dentro de un formulario,,, ok?
    Luego tuve que separar check en grupos y cada grupo tiene un check que marca y desmarca.

    para marcar y desmarcar todos los check utilizo una funcion javascript que me lee todos los check dentro de un formulario y asi los marca y los desmarca,,,

    Insertar CODE, HTML o PHP:
    function selydestodos(form,activa){
        if(activa==true){
        for(i=0;i<form.elements.length;i++){
            if(form.elements[i].type=="checkbox"){
                form.elements[i].checked=true;
                document.getElementById('cbxnosepresenta').checked=false;
                <!--document.getElementById('cbxsinagenda').checked=false;-->
            }
              if(form.elements[i].type == "text"){
                 if(document.getElementById("txt_run")==form.elements[i] || 
                    document.getElementById("txt_nombre")==form.elements[i] ||
                    document.getElementById("txt_sexo")==form.elements[i] ||
                    document.getElementById("txt_edad")==form.elements[i]){
                        
                }else{
                     form.elements[i].value="1";
                    form.elements[i].style.backgroundColor="#ffffff";
                    form.elements[i].disabled=false;
                    }    
            }            
        }
        }
        if(activa==false){
        for(i=0;i<form.elements.length;i++){
            if(form.elements[i].type=="checkbox"){
                form.elements[i].checked=false;
            }
              if(form.elements[i].type == "text"){
                 if(document.getElementById("txt_run")==form.elements[i] || 
                    document.getElementById("txt_nombre")==form.elements[i] ||
                    document.getElementById("txt_sexo")==form.elements[i] ||
                    document.getElementById("txt_edad")==form.elements[i]){
                }else{
                     form.elements[i].value="0";
                    form.elements[i].style.backgroundColor="#eeeeee";
                    form.elements[i].disabled=true;
                    }
                    
            }            
        }        
      }
    }
    
    Entonces el problema es que al momento de apretar uno de los check que marcan y desmarcan, se marcan todos los grupos y quiero que se marquen los check de un solo grupo.

    bueno los separe por formularios cada grupo y queda perfect. pero esto me genera otro problema,,, que al momento de grabar todos los checks seleccionados no me graba nada,,, ya que el formulario de grabado esta asi.

    Insertar CODE, HTML o PHP:
    <form name="formulario.de.grabado">
         <form name="grupo.1">
         </form>
         <form name="grupo.2">
         </form>
         <form name="grupo.3">
         </form>
    </form>
    cachan? puxa no redacte bien la wea pero espero que entiendan y me ayuden.

    consultas las respondo en un abrir y cerrar de ojos



    SOLUCIÓN: ----------------------------------------------
    creo automaticamente una función por grupo y creo variables dependiendo las cantidades de actividades de ese grupo.

    Insertar CODE, HTML o PHP:
    <script>
    function selydestodosunoauno<? echo $f1["cg"]; ?>(form,activa){
    if(activa==true){
    for(i=0;i<form.elements.length;i++){
    		if(form.elements[i].type=="checkbox"){
    <? foreach($m2 as $f2){ echo "document.getElementById('chk".$f2['codact']."').checked=true;"; }?>
    			document.getElementById('cbxnosepresenta').checked=false;
    		}
          	if(form.elements[i].type == "text"){
    			 if(document.getElementById("txt_run")==form.elements[i] || 
    				document.getElementById("txt_nombre")==form.elements[i] ||
    				document.getElementById("txt_sexo")==form.elements[i] ||
    				document.getElementById("txt_edad")==form.elements[i]){
    					
    			}else{
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').value=\"1\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').style.backgroundColor=\"#ffffff\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').disabled=false;"; }?>
    				}	
    		}			
    	}
    	}
    	if(activa==false){
    	for(i=0;i<form.elements.length;i++){
    		if(form.elements[i].type=="checkbox"){
    <? foreach($m2 as $f2){ echo "document.getElementById('chk".$f2['codact']."').checked=false;"; }?>
    		}
          	if(form.elements[i].type == "text"){
    			 if(document.getElementById("txt_run")==form.elements[i] || 
    				document.getElementById("txt_nombre")==form.elements[i] ||
    				document.getElementById("txt_sexo")==form.elements[i] ||
    				document.getElementById("txt_edad")==form.elements[i]){
    			}else{
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').value=\"0\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').style.backgroundColor=\"#eeeeee\";"; }?>
    <? foreach($m2 as $f2){ echo "document.getElementById('txt".$f2['codact']."').disabled=true;"; }?>
    
    
    			}
    		}			
    	}	
      }
    }
    </script>
    
     
    #1 VenenoxHC, 22 Nov 2012
    Última edición: 22 Nov 2012
  2. Aguil@

    Aguil@ Usuario Habitual nvl.3 ★
    197/244

    Registrado:
    10 Oct 2007
    Mensajes:
    14.337
    Me Gusta recibidos:
    38
    gracias por compartir la solucion avisare para que manden el tema a resueltos ! :)
     
  3. AL2_

    AL2_ Usuario Habitual nvl.3 ★
    187/244

    Registrado:
    25 Abr 2009
    Mensajes:
    20.338
    Me Gusta recibidos:
    14
Estado del Tema:
Cerrado para nuevas respuestas