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 originalfunction activaItemA(form){
for (var i = 0; i < 15; i++) {
if(form.ChkSonido.checked){
document.getElementById('campo'+i).removeAttribute("disabled", 0);
} else {
document.getElementById('campo'+i).setAttribute("disabled", 0);
}
}
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