Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310

    Elenco di checkbox ad albero

    Ciao a tutti,
    sto facendo il seguente elenco ad albero a più livelli:

    codice:
    - Voce 1
       - sottovoce 1.1
       - sottovoce 1.2
       - sottovoce 1.3
    - Voce 2
       - sottovoce 2.1
       - sottovoce 2.2
       - sottovoce 2.3
    - Voce 3
       - sottovoce 3.1
       - sottovoce 3.2
       - sottovoce 3.3
          - sottovoce 3.3.1 
          - sottovoce 3.3.2
    Per ogni voce c'è un checkbox.
    quello che sono riuscito a fare è che "checkando" (passatemi il termine) un elemento della lista si "chekkano" anche i nodi padre a cascata.
    per esempio se "checko" la "sottovoce 3.3.2" automaticamente si checkano la "sottovoce 3.3" e la Voce 3.

    Quello che volevo fare, e che nn ci sono riuscito, è che selezionando/Deselezionando la Voce 3 mi selezioni/deselezioni tutte le sottovoci.

    spero di essere stato chiaro.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non farcelo rifare da zero
    posta xhtml e script fino al punto in cui sei arrivato

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    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;
    		}
    	}

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ...

    sono certo troverai qualcuno pronto a popolarsi una tabella mysql giusto per iniziare a capire come si chiamano i checkbox
    buon proseguimento

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    310
    Originariamente inviato da Xinod
    ...

    sono certo troverai qualcuno pronto a popolarsi una tabella mysql giusto per iniziare a capire come si chiamano i checkbox
    buon proseguimento
    Molto gentile, ma oltre questo nn saprei certo cosa postare.
    I nome dei checkbox sono "funz_<?=cont_funz?>"

    che come puoi vedere dal codice è un contatore, quindi la tabella non c'entra nulla con i nome dei campi.

    Grazie lo stesso

  6. #6
    Xinod intendeva che potresti postare la pagina bella e pronta come la vedi sul browser e non il codice PHP. HTML puro insomma

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.