Originariamente inviato da Xinod
non farcelo rifare da zero
posta xhtml e script fino al punto in cui sei arrivato
PAGINA XHTML
codice:
<ul class="menu_funz_padre">
<?
$cont_funz = 1;
while ($rs_f = mysql_fetch_array($sql_f)){
$cod_prec="";
$id_radice = $rs_f['id'];
$titolo_radice = stripslashes($rs_f['titolo']);
?>[*]
<input id ="funz_<?=$cont_funz?>" type="checkbox" value="<?=$id_radice?>" name="funz_<?=$cont_funz?>" /><?=$titolo_radice?>
<?
$num_funz=$cont_funz;
$cont_funz = $cont_funz + 1;
$cont_funz = cerca_figli($id_radice,$cont_funz,$num_funz,$cod_prec);
}
?>[/list]
La funzione cerca_figli:
function cerca_figli($id_radice,$cont_funz,$num_funz,$cod_prec){
$sql_fig =mysql_query("select * from a_tabella where id_padre = $id_radice order by posizione asc");
$presente = mysql_num_rows($sql_fig);
$codice_f = $cod_prec.$num_funz."#";
if ($presente!=""){
?>
<ul class="menu_funz">
<?
while ($rs_fig = mysql_fetch_array($sql_fig)){
$id_figlio = $rs_fig['id'];
$titolo_figlio = stripslashes($rs_fig['titolo']);
?>[*]
<input id ="funz_<?=$cont_funz?>" type="checkbox" value="<?=$id_figlio?>" name="funz_<?=$cont_funz?>" onClick="seleziona_padre('<?=$codice_f?>')" /><?=$titolo_figlio?>
<?
$num_funz = $cont_funz;
$cont_funz = $cont_funz +1 ;
$cont_funz = cerca_figli($id_figlio,$cont_funz,$num_funz,$codice_f);
}
?>[/list]
<?
}
return $cont_funz;
}
La funzione javascript per selezionare solo i padri del nodo selezionato:
codice:
function seleziona_padre(cod_p){
var col_array=cod_p.split("#");
var part_num=0;
while (part_num < col_array.length)
{
num = col_array[part_num];
if (num!=""){
document.getElementById("funz_"+num).checked = true
}
part_num+=1;
}
}