Foros del Web » Programando para Internet » Javascript »

AJAX activar inputs dinamicamente mediante checkbox

Estas en el tema de AJAX activar inputs dinamicamente mediante checkbox en el foro de Javascript en Foros del Web. Hola amigos, he estado craneándome un buen rato, pero simplemente con javascript y no me funciona o no se que pasa. Necesito hacer lo siguiente: ...
  #1 (permalink)  
Antiguo 09/05/2012, 04:16
 
Fecha de Ingreso: abril-2010
Mensajes: 112
Antigüedad: 14 años
Puntos: 2
AJAX activar inputs dinamicamente mediante checkbox

Hola amigos, he estado craneándome un buen rato, pero simplemente con javascript y no me funciona o no se que pasa.

Necesito hacer lo siguiente:



En el ejemplo, al hacer click en el checkbox que dice "Sonido" se activan los checkbox del area de "Pestaciones de Sonido" (abajo) eso está perfecto, pero por que tengo claro el id de lo que necesito. Pero no activa los <input type="text"/>, eso se hace con los checkbox que acaban de activarse, como pueden probarlo.

Ejemplo:

Pero el asunto es que esa lista de prestaciones que se ve realmente proviene de una tabla en mysql, es decir se hace un query y aparecen pueden ser los que se ven ahi, más o menos...quien sabe como cambien. Entonces debo hacerlo dinámicamente. He probado con lo siguiente.

Código Javascript:
Ver original
  1. function activaItemA(form){
  2.    
  3.     for (var i = 0; i < 15; i++) {  
  4.    
  5.         if(form.ChkSonido.checked){
  6.  
  7.         document.getElementById('campo'+i).removeAttribute("disabled", 0);
  8.        
  9.     } else {
  10.         document.getElementById('campo'+i).setAttribute("disabled", 0);
  11.     }
  12.    
  13. }

Código PHP:
function despliegaTablaPrestaciones(){
    
    echo
'<html>
<head>
<title>Mantenedor Ejecutores</title>
<link rel="stylesheet" type="text/css" href="css/estilos.css" />
<link rel="stylesheet" type="text/css" href="css/960.css" />
<link rel="stylesheet" type="text/css" href="css/960_24_col.css" />
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/checkes.js"></script>


</head>
<body>

<ul>
<form action="cotizacion.php">
         
        <input type="checkbox" name="chkHabSonido" onclick="activarAudioSonido(this.form)" id="habilitaSonido"/> Sonido
         <input type="checkbox" name="chkHabAudio" onclick="activarAudioSonido(this.form)" id="habilitaAudio"/> Audio
         <fieldset disabled="disabled" id="prestaAudio">
             <legend>
                 Prestaciones de Audio
             </legend>'
;
    
    
crearConexion();
    
//Prestaciones Audio
    
    
$sql "SELECT id_prestacion, 
                   glosa_prestacion,
                   id_tipo_prestacion_p,
                   costo_referencia,
                   tarifa_referencia
           FROM prestaciones WHERE id_tipo_prestacion_p = 1"
;
    
$result mysql_query($sql) or exit(mysql_error());
    while(
$row mysql_fetch_row($result)){
        
$i 0;
                   
$idp $row[0];
                   
$glosa_prestacion $row[1];
                   
$id_tipo_prestacion_p $row[2];
                   
$costo_referencia $row[3];
                   
$tarifa_referencia $row[4];
                   
                   echo
'<li><input type="checkbox" name="Chkaudio[]" value="'.$idp.'"/><input type="text" size="2" name="cantGlosa'.$idp.'" id="audioCampo'.$i.'" disabled="disabled"/> '.$glosa_prestacion.'</li>';
    }
    
    echo
'
         </ul>
         </fieldset>
         
  <fieldset disabled="disabled" id="prestaSonido">
             <legend>
                 Prestaciones de Audio
             </legend>'
;

    
//Prestaciones Sonido
    
    
$sql2 "SELECT id_prestacion, 
                   glosa_prestacion,
                   id_tipo_prestacion_p,
                   costo_referencia,
                   tarifa_referencia
           FROM prestaciones WHERE id_tipo_prestacion_p = 2"
;
    
$result2 mysql_query($sql2) or exit(mysql_error());
    
$num mysql_num_rows($result2);
     
$cont=0;
    for(
$i 0$i$num$i++){
       
    
      
$row2 mysql_fetch_row($result2);
      
                   
$idp2 $row2[0];
                   
$glosa_prestacion2 $row2[1];
                   
$id_tipo_prestacion_p2 $row2[2];
                   
$costo_referencia2 $row2[3];
                   
$tarifa_referencia2 $row2[4];
                  
                  echo
'<li><input type="checkbox" name="ChkSonido[]" id="chkSonido'.$i.'" value="'.$idp2.'" onclick="activaItemA(this.form)"/> 
                      <input type="text" size="2" name="cantGlosa'
.$i.'" id="campo'.$i.'" disabled="disabled"/> '.$glosa_prestacion2.'</li>';
    
     
$cont++;
    }
    
    
    
    echo
'
         </ul>
         </fieldset>


         </form>
</body>
</html>'
;
    

Es decir apliqué lo mismo, pero necesito que los id sean únicos obviamente y eso lo hice agregandole un índice. Pero no sé...¿Necesitaré ajax?

Espero sus comentarios,

Gracias de antemano

Última edición por Ojopex2; 01/03/2013 a las 14:05

Etiquetas: ajax, checkboxes, habilita, inputs
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 04:18.