Menu espandibile

saretta883

Nuovo Utente
10 Ago 2011
2
0
0
Ciao a tutti...volevo sottoporvi il mio PROBLEMA!!
Prima di tutto occorre specificare che sono zero con javascript. Per questo motivo quando mi sono trovata a dover fare un menu espandibile per il mio sito sono corsa subito a cercare qualcosa di pronto in rete.
Vi posto il codice del menu espandibile che ho trovato e che utilizzo:
Codice:
var prev= null;

window.onload=function(){
if(document.getElementsByTagName && document.getElementById){
    document.getElementById("nav").className="jsenable";
    BuildList();
    }
}

function BuildList(){
var hs=document.getElementById("nav").getElementsByTagName("h3");
for(var i=0;i<hs.length;i++){
    hs[i].onclick=function(){
			if(this.parentNode.className!="show"){
				this.parentNode.className="show";
				if(prev && prev!=this.parentNode) prev.className="hide";
					prev=this.parentNode;
				}
			else this.parentNode.className="hide";
			}
    }
}
Questo qui invece è il codice php della pagina che mostra il menu e che lo popola mediate le voci presenti in un db:
PHP:
<html>
	<head>
		<title>Menù</title>
	</head>
	<link rel="stylesheet" type="text/CSS" href="css.CSS">
	<script type="text/Javascript" src="expand.js"></script> 
	<body>
		<div id="nav">
			<ul>
				<?php
				session_start();
				$macro_utente=$_SESSION['macro'];
				$c=oci_connect("console", "console", "sigla40t.zoo.intra"); 
				$queryprima=oci_parse($c,"select m.cod_macro livello1, m.des_macro des_livello1
							from con_macro m
							order by m.ordine");
				oci_execute($queryprima);
				$j=1;
				while (($riga=oci_fetch_array($queryprima, OCI_NUM + OCI_RETURN_NULLS))){
					echo("<li><h3 id='".$riga[1]."'>".$riga[1]."</h3><ul>");
					$macro=$riga[0];
					$queryseconda=oci_parse($c,"select m.cod_macro livello1, fu.des_funzione des_livello2
								from con_macro m, con_menu me, con_funzioni fu
							              where m.cod_macro = me.cod_macro and me.cod_funzione = fu.cod_funzione and m.cod_macro='$macro'
                                                                                                                order by m.ordine,me.ordine");
					oci_execute($queryseconda);
					$i=1;
					while (($row=oci_fetch_array($queryseconda, OCI_NUM + OCI_RETURN_NULLS))){
						echo ('<li><a href="prova_menu'.$j.'_'.$i.'.php" target="login">'.$row[1].'</a></li>');
						$i++;
					}
					echo('</ul></li>');
					$j++;
				}
				?>
			</ul>
		</div>
	</body>
</html>
Questo menu mi permette di espandere solo una voce alla volta e questo mi va benissimo, il problema è che vorrei che ogni voce si aprisse solo all'utente giusto. Mi spiego meglio, ogni utente a un profilo ed in base a questo può vedere solo una voce del menu. Quindi a me servirebbe inserire un controllo nel codice javascript che dice: Se la voce principale del menu è = alla voce menu dell'utente ($macro_utente=$_SESSION['macro'];) allora espandi, altrimenti nascondi. Non penso sia una cosa difficile per uno che ci capisce ma per me è davvero impossibile. Ho fatto diversi tentativi ma non c'è stato proprio verso!
Potete aiutarmi???
Un'altra modifica che vorrei apportare (ma è secondaria) è la seguente: aggiungere un ulteriore sottomenu, cioè rendere espandibile alcune voci del sottomenu!!!
Help me!!!
Grazie in anticipo

Sara
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sarebbe meglio che tu agissi su php (layto servere) in quanto js può essere aggirato.
forse dico una bestialità (tra l'altro mi sembra che tu usi oracle che non conosco), ma non potresti estrarra dalla select anche il codice macro dell'utente e
PHP:
<?php
//.....
while (($row=oci_fetch_array($queryseconda, OCI_NUM + OCI_RETURN_NULLS))){
	$macro_estratta=$row['macro'];
        if($macro_estratta==$_SESSION['macro']){
		echo ('<li><a href="prova_menu'.$j.'_'.$i.'.php" target="login">'.$row[1].'</a></li>');
		$i++}
	}
}
//....
?>

se non funzia spero che risponda qualcunaltro
 

saretta883

Nuovo Utente
10 Ago 2011
2
0
0
PHP:
<?php
//.....
while (($row=oci_fetch_array($queryseconda, OCI_NUM + OCI_RETURN_NULLS))){
	$macro_estratta=$row['macro'];
        if($macro_estratta==$_SESSION['macro']){
		echo ('<li><a href="prova_menu'.$j.'_'.$i.'.php" target="login">'.$row[1].'</a></li>');
		$i++}
	}
}
//....
?>
Voglio ringraziarti di cuore...sei stato no gentilissimo...di più!!! Sono riuscita a risolvere il problema che mi sembrava veramente insormontabile!!!
GRAZIE GRAZIE e ancora GRAZIE....
ora ti posto la soluzione:
PHP:
while (($riga=oci_fetch_array($queryprima, OCI_NUM + OCI_RETURN_NULLS))){
					echo("<li><h3 id='".$riga[1]."'>".$riga[1]."</h3><ul>");
					$macro=$riga[0];
					$queryseconda=oci_parse($c,"select m.cod_macro livello1, m.des_macro livello1_esteso,  
                                                                                                                            fu.des_funzione des_livello2
								   from con_macro m, con_menu me, con_funzioni fu										   where m.cod_macro = me.cod_macro and 
                                                                                                                             me.cod_funzione = fu.cod_funzione and 
                                                                                                                             m.cod_macro='$macro'
								   order by m.ordine,me.ordine");
					oci_execute($queryseconda);
					$i=1;
					while (($row=oci_fetch_array($queryseconda, OCI_NUM + OCI_RETURN_NULLS))){
						if ($row[1]==$macro_utente){
							echo ('<li><a href="prova_menu'.$j.'_'.$i.'.php" target="login">'.$row[2].'</a></li>');
						}
						$i++;
					}
					echo('</ul></li>');
					$j++;
				}

In pratica ho modificato la query, ho inserito l'if come mi hai consigliato tu mettendo però il contatore "i" fuori dal ciclo if e ora funzionaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!!!!!!! :)
GRAZIE GRAZIEEEEEEEEEEEEEEEEEEEEEEEEE
ps. per aggiungere altri sottomenu...hai qualche idea??? :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
M menu espandibile con i css con sottolivelli HTML e CSS 2
W Menu verticale animato ed espandibile HTML e CSS 0
A ChildNodes e menu espandibile Javascript 0
T problemi con dati menu a tendina HTML e CSS 2
A menu a tendina php PHP 1
M Accordion menu e posizione div HTML e CSS 0
F Menu responsive larghezza schermo HTML e CSS 2
G Colorare menu select attraverso ricerca php PHP 0
M Creazione menu a tendina Javascript 3
D menu con submenu orizzontale HTML e CSS 0
Cosina Menu fisso copre i titoli quando cliccati nel sommario jQuery Javascript 4
G creazione menu a tendina e invio a pagina php PHP 1
P Sub menu con Collapse. Javascript 0
R abilitare menu a tendina tramite relativa chekbox PHP 17
L Aiuto creazione menu mancante WordPress 0
S spostare il pulsante menu dropdown HTML e CSS 8
F Dropdown menu con tabella PHP 33
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
A [WordPress] Menu bar WordPress 0
W [WordPress] Non si vedono le categorie da aggiungerle al Top Menu WordPress 3
M Inviare variabili da menu a tendina a pagina php con post PHP 6
M [PHP] Selezione da menu a discesa con 2 variabili PHP 0
F [WordPress] [HTML] Aggiungere una pagina solo allo sticky menu WordPress 4
M [PHP] Creare un menu a tendina con pdo PHP 18
M [Javascript] Caricamento menu da file esterno Javascript 8
W [HTML] Animazione menu mobile HTML e CSS 0
P [HTML] Eliminare doppio menu in wordpress WordPress 2
andreas88 [PHP] menu PHP 15
K [ASP.Net] Realizzazione menu a tendina dipendenti ASP.NET 1
M [HTML] problema spazio aggiuntivo tra elementi <li> di menu a tendina HTML e CSS 1
L [css e html] destra e sinistra (menu navigazione) HTML e CSS 3
P [Gratuito][Cerco] qualcuno per fare menu a tendina ottimizzato per mobile-responsive con css e html Offerte e Richieste di Lavoro e/o Collaborazione 3
P [HTML] Problema con menu orizzontale a tendina per sito web HTML e CSS 17
P [Javascript] Voce del menu evidenziata in base alla pagina attiva Javascript 48
V [WordPress] Come modificare link in tasto menu css WordPress 21
S [Javascript] [CSS] Spazio Bianco tra Slider e Menu foto Javascript 6
P [Javascript] problema menu responsive su aruba, editor bk Javascript 1
Hellgrom90 Hamburger menu non si chiude jQuery 1
K [Javascript] Finestra menu Javascript 1
Selenio89 [HTML] creare menu di navigazione HTML e CSS 2
C [Javascript] [HTML] Problemi: Overlay, Banner, Menu Javascript 4
C 3 Bug CSS AND HTML: Overlay-Banner-Menu HTML e CSS 0
C 3 BUG CSS AND HTML: OVERLAY - BANNER- MENU HTML e CSS 0
M [PHP] Menu a tendina dinamico che non si aggiorna PHP 2
U [PHP] Selezione con menu a tendina e recupero selezione PHP 5
M Riadattamento funzioni per far scomparire un menu. jQuery 4
G [Javascript] Transition in OnClick Dropdown Menu Javascript 5
U [Javascript] Menu responsive non scompare col click sui link Javascript 0
A [Javascript] Problemi menu bootstrap Javascript 1
A [HTML] Menu con effetto slide down HTML e CSS 0

Discussioni simili