Mi è capitato di dover gestire (in asp…) un software per le disdette di prodotti e sottoprodotti. Mi hanno chiesto di fare in modo che nella scheda di compilazione, quando viene disdetto un prodotto, anche i sotto prodotti devono essere disdetti.
La tabella che io avevo era fatta così:
<form id="myForm">
| prodotto | aggiungi |
| nome prodotto | |
| - sottoprodotto | |
| - sottoprodotto | |
| nome prodotto | |
| - sottoprodotto | |
| nome prodotto | |
</form>
Quindi nel loop dei prodotti facciamo in modo che i sottoprodotti, o meglio le righe (TR) dei sottoprodotti siano raggruppate usando:
<TBODY ID="sottoprodotto124">---</TBODY>
Dove 124 è l’id del prodotto!
Inserimento quindi nei checkbox dei Prodotti (non sottoprodotti) una chiamata ad una funzione js:
onClick="checkSottoprodotti(this,'prodottiAdd<%=prg_bs%>');"
Vediamo quindi la funzione checkSottoprodotti.
function myLayer (x){
//individuo l'oggetto
if(document.layers){ // browser="NN4";
lay=document.layers[x];
}
if(document.all){ // browser="IE";
lay=eval("document.all." + x);
}
if(!document.all && document.getElementById){ // browser="NN6+ or IE5+ if you're willing to dump the !document.all stuff";
lay=document.getElementById(x);
}
return lay;
}
function checkSottoprodotti(inp,n){
//recupero valore del prodotto
var valore = inp.checked;
s = myLayer(n);
s = s.getElementsByTagName("input");
for (i=0;i<s.length;i++){
//imposto i figli
s[i].checked=valore;
}
}
Capito? Individuo il gruppo di righe tramite l’id che abbiamo inserito prima, creato dinamicamente con il loop, quindi tramite getElementsByTagName loopo tutti gli input all’interno di quel id
Se trovi questo articolo su un blog diverso da “blog.merlinox.com” si tratta probabilmente di una copia non autorizzata. L’indirizzo originale di questo articolo è: Loop degli INPUT dentro un ID scritto da Merlinox.
