come fare per creare una cosa del genere:
![]()
ovviamente cliccando sui check a sfondo grigio deve ceccare o dececcare tutta la riga o la colonna!!!
![]()
come fare per creare una cosa del genere:
![]()
ovviamente cliccando sui check a sfondo grigio deve ceccare o dececcare tutta la riga o la colonna!!!
![]()
Prima o poi anch'io vi insegnerò qualcosa
Questo dimostra il mio impegno ma non riesco ad andare avanti:
<script>
function checkAllrigo1(field) {
if (document.consform.rigo1cbh.checked==true) {
for (i = 0; i < field.length; i++) {
field[i].checked = true ;
}
} else {
for (i = 0; i < field.length; i++){
field[i].checked = false ;
}
}
}
function checkAllrigo2(field) {
if (document.consform.rigo2cbh.checked==true) {
for (i = 0; i < field.length; i++) {
field[i].checked = true ;
}
} else {
for (i = 0; i < field.length; i++){
field[i].checked = false ;
}
}
}
function checkAllrigo3(field) {
if (document.consform.rigo3cbh.checked==true) {
for (i = 0; i < field.length; i++) {
field[i].checked = true ;
}
} else {
for (i = 0; i < field.length; i++){
field[i].checked = false ;
}
}
}
</script>
<form name="consform" method="post" action="#">
<table width="200" border="1">
<tr bgcolor="#999999">
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center" bgcolor="#999999"><input type="checkbox" name="rigo1cbh" value="cbh" onclick="checkAllrigo1(document.consform.rigo1);" /></td>
<td align="center"><input type="checkbox" name="rigo1" value="1" /></td>
<td align="center"><input type="checkbox" name="rigo1" value="2" /></td>
<td align="center"><input type="checkbox" name="rigo1" value="3" /></td>
</tr>
<tr>
<td align="center" bgcolor="#999999"><input type="checkbox" name="rigo2cbh" value="cbh" onclick="checkAllrigo2(document.consform.rigo2);" /></td>
<td align="center"><input type="checkbox" name="rigo2" value="1" /></td>
<td align="center"><input type="checkbox" name="rigo2" value="2" /></td>
<td align="center"><input type="checkbox" name="rigo2" value="3" /></td>
</tr>
<tr>
<td align="center" bgcolor="#999999"><input type="checkbox" name="rigo3cbh" value="cbh" onclick="checkAllrigo3(document.consform.rigo3);" /></td>
<td align="center"><input type="checkbox" name="rigo3" value="1" /></td>
<td align="center"><input type="checkbox" name="rigo3" value="2" /></td>
<td align="center"><input type="checkbox" name="rigo3" value="3" /></td>
</tr>
</table>
</form>
Tutto funziona per le righe ma non ho idea di come andare avanti sulle colonne!!!![]()
![]()
![]()
Prima o poi anch'io vi insegnerò qualcosa
Per le colonne ti consiglio di andare a giocare sul value...
Penso di avercela fatta, ovviamente funziona su 3 colonne ma è personalizzabile su quante uno ne vuole. Intanto posto quel che ho fatto, poi vedo se posso semplificarlo.![]()
![]()
<script>
function checkAllrigo1(field) {
if (document.consform.rigo1cbh.checked==true) {
for (i = 0; i < field.length; i++) {
field[i].checked = true ;
}
} else {
for (i = 0; i < field.length; i++){
field[i].checked = false ;
}
}
}
function checkAllrigo2(field) {
if (document.consform.rigo2cbh.checked==true) {
for (i = 0; i < field.length; i++) {
field[i].checked = true ;
}
} else {
for (i = 0; i < field.length; i++){
field[i].checked = false ;
}
}
}
function checkAllrigo3(field) {
if (document.consform.rigo3cbh.checked==true) {
for (i = 0; i < field.length; i++) {
field[i].checked = true ;
}
} else {
for (i = 0; i < field.length; i++){
field[i].checked = false ;
}
}
}
function checkAllcolonna1(field) {
if (document.consform.colonna1cbh.checked==true) {
field[0].checked = true ;
} else {
field[0].checked = false ;
}
}
function checkAllcolonna2(field) {
if (document.consform.colonna2cbh.checked==true) {
field[1].checked = true ;
} else {
field[1].checked = false ;
}
}
function checkAllcolonna3(field) {
if (document.consform.colonna3cbh.checked==true) {
field[2].checked = true ;
} else {
field[2].checked = false ;
}
}
</script>
<form name="consform" method="post" action="#">
<table width="200" border="1">
<tr bgcolor="#999999">
<td align="center"></td>
<td align="center"><input type="checkbox" name="colonna1cbh" value="cbh" onclick="checkAllcolonna1(document.consform.rigo1) ; checkAllcolonna1(document.consform.rigo2); checkAllcolonna1(document.consform.rigo3);" /></td>
<td align="center"><input type="checkbox" name="colonna2cbh" value="cbh" onclick="checkAllcolonna2(document.consform.rigo1) ; checkAllcolonna2(document.consform.rigo2); checkAllcolonna2(document.consform.rigo3);" /></td>
<td align="center"><input type="checkbox" name="colonna3cbh" value="cbh" onclick="checkAllcolonna3(document.consform.rigo1) ; checkAllcolonna3(document.consform.rigo2); checkAllcolonna3(document.consform.rigo3);" /></td>
</tr>
<tr>
<td align="center" bgcolor="#999999"><input type="checkbox" name="rigo1cbh" value="cbh" onclick="checkAllrigo1(document.consform.rigo1);" /></td>
<td align="center"><input type="checkbox" name="rigo1" value="1" /></td>
<td align="center"><input type="checkbox" name="rigo1" value="2" /></td>
<td align="center"><input type="checkbox" name="rigo1" value="3" /></td>
</tr>
<tr>
<td align="center" bgcolor="#999999"><input type="checkbox" name="rigo2cbh" value="cbh" onclick="checkAllrigo2(document.consform.rigo2);" /></td>
<td align="center"><input type="checkbox" name="rigo2" value="1" /></td>
<td align="center"><input type="checkbox" name="rigo2" value="2" /></td>
<td align="center"><input type="checkbox" name="rigo2" value="3" /></td>
</tr>
<tr>
<td align="center" bgcolor="#999999"><input type="checkbox" name="rigo3cbh" value="cbh" onclick="checkAllrigo3(document.consform.rigo3);" /></td>
<td align="center"><input type="checkbox" name="rigo3" value="1" /></td>
<td align="center"><input type="checkbox" name="rigo3" value="2" /></td>
<td align="center"><input type="checkbox" name="rigo3" value="3" /></td>
</tr>
</table>
Prima o poi anch'io vi insegnerò qualcosa
Perché non fai la funzione checkAllRigo e checkAllColonna con il numero della riga/colonna via parametro così da avere una funzione per le n righe ed una funzione per le m colonne anziché n + m funzioni??
perchè sono un neofita, ecco perchè.
Comunque in php l'ho trasformato così:
<?php
$n_righe = 10;
$n_colonne = 6;
echo'<script>';
for ($k = 1; $k < ($n_righe + 1); $k++)
{
echo'function checkAllrigo' . $k . '(field) {';
echo'if (document.consform.rigo' . $k . 'cbh.checked==true) {';
echo'for (i = 0; i < field.length; i++) {';
echo'field[i].checked = true ;';
echo'}';
echo'} else {';
echo'for (i = 0; i < field.length; i++){';
echo'field[i].checked = false ;';
echo'}';
echo'}';
echo'}';
}
for ($b = 1; $b < ($n_colonne + 1); $b++)
{
echo'function checkAllcolonna' . $b . '(field) {';
echo'if (document.consform.colonna' . $b . 'cbh.checked==true) {';
echo'field[' . ($b - 1) . '].checked = true ;';
echo'} else {';
echo'field[' . ($b - 1) . '].checked = false ;';
echo'}';
echo'}';
}
echo'</script>';
?>
<form name="consform" method="post" action="#">
<table width="200" border="1">
<tr bgcolor="#999999">
<td align="center"></td>
<?php
for ($b = 1; $b < ($n_colonne + 1); $b++)
{
echo '<td align="center"><input type="checkbox" name="colonna' . $b . 'cbh" value="cbh" onclick="';
for ($k = 1; $k < ($n_righe + 1); $k++)
echo 'checkAllcolonna' . $b . '(document.consform.rigo' . $k . '); ';
echo '" /></td>';
}
?>
</tr>
<?php
for ($k = 1; $k < ($n_righe + 1); $k++)
{
echo '<tr>';
echo ' <td align="center" bgcolor="#999999">';
echo ' <input type="checkbox" name="rigo' . $k . 'cbh" value="cbh" onclick="checkAllrigo' . $k . '(document.consform.rigo' . $k . ');" />';
echo ' </td>';
for ($b = 1; $b < ($n_colonne + 1); $b++)
echo ' <td align="center"><input type="checkbox" name="rigo' . $k . '" value="' . $b . '" /></td>';
echo '</tr>';
}
?>
</table>
</form>
In questo modo si creano tante righ e colonne in maniera molto semplice, cambiando n_righe e n_colonne.![]()
![]()
![]()
Prima o poi anch'io vi insegnerò qualcosa