Menu dinamico como mysql

Enviada por Douglas 
Douglas
Menu dinamico como mysql
18 de July de 2012 às 01:41PM
Bom dia.
Estou com dificuldade em fazer com que o menu que criei funcione corretamente. Ele está sendo mondado corretamente, porem onde deveria fazer a chamada para um "form" não funciona, na verdade não chama nada. Por exemplo (script html no final), no acesso Vendas -> Cadastro -> Produto, quando eu clicar no produto deveria abrir o "form" do cadastro de produto, porem não acontece nada. No script é possivel ver que tem a chamada para o "form" do cadastro de produto. Alem disso o script fica repetindo o nivel anterior a quantidade de vezes que o nivel possui.


<?PHP

function menusis($u_login){
$userAcesso = $u_login;
## Monta um array com o menu principal
$sqlMenuPrinc = "select m.descricao, m.id idmodulo, m.modulo
from modulo m
join acesso a on a.modulo = m.id where a.usuario = $userAcesso group by m.id order by m.modulo";
$qureyMenuPrinc = mysql_query($sqlMenuPrinc);

echo "
<div id='descMenu'>Menu</div>

<div id='menu'>
<ul>
";
while ($rowMenuPrin = mysql_fetch_array($qureyMenuPrinc)) {
echo '<li><a href="#">'.strtoupper(trim($rowMenuPrin['modulo'])).'</a>'; ## nome do menu principal - MODULOS
$idModulo = $rowMenuPrin['idmodulo'];
## Busca a lista de menus
$sqlMenu = "select a.usuario, m.modulo descricao, a.descricao desc_rotina, a.modulo idmodulo, a.rotina, a.incluir, a.alterar,
a.excluir, a.relatar, a.consultar, a.nivel, a.ativo, a.link, a.icone
FROM acesso a
join modulo m on m.id = a.modulo
WHERE a.ativo = 1
and a.modulo = $idModulo
and a.usuario = $userAcesso
and substr(a.nivel,1,3) <> '999'
ORDER BY m.modulo, a.nivel, a.descricao ASC";
$queryMenu = mysql_query($sqlMenu);
$numLinha = mysql_num_rows($queryMenu);
if( $numLinha > 0){
echo "
<ul class='submenu'>
";
while ($rowMenu = mysql_fetch_array($queryMenu)) {
$lnNivel = substr_count($rowMenu['nivel'], ',');
$lnNivel = $lnNivel + 1;
if ($lnNivel === 1){
echo '<li>';
echo '<a href="'.$rowMenu['link'].'">'.trim($rowMenu['desc_rotina']).'</a>
'; ## SUB-MENUS PRINCIPAIS QUE DAO ACESSO AO SUB ROTINAS
} else {
if ($lnNivel > 1 ){
echo "<ul class='submenu'>
";
$lnValorSubNivel = substr($rowMenu['nivel'],0,4);
$sqlMenuSub = "select a.usuario, m.modulo descricao, a.descricao desc_rotina,
a.modulo idmodulo, a.rotina, a.incluir, a.alterar,
a.excluir, a.relatar, a.consultar, a.nivel, a.ativo, a.link, a.icone
FROM acesso a
join modulo m on m.id = a.modulo
WHERE a.ativo = 1
and a.modulo = $idModulo
and a.usuario = $userAcesso
and substr(a.nivel,1,4) = '$lnValorSubNivel'
and length(trim(a.nivel)) > 3
ORDER BY m.modulo, a.nivel, a.descricao ASC";
$queryMenuSub = mysql_query($sqlMenuSub);
while($rowSubMenu = mysql_fetch_array($queryMenuSub)){
echo '<li><a href="'.$rowMenu['link'].'">'.trim($rowSubMenu['desc_rotina']).'</a></li>
';
} #fim while submenu
echo '</ul> <!--fim da ul do submenu #fim while submenu -->
';
echo '</li>
';
} #fim if submenu
}
} # fim while
echo " </ul>
";
} # fim if
echo '</li>
';
} # fim while geral

echo "</ul>
</div>
";

}


?>


======>>>> Aqui esta o html gerado com a função acima

<li><a href="#">VENDA</a>
<ul class='submenu'> <!-- Inicio do sub-menu (2 nivel) -->
<li><a href="#">CADASTRO</a> <!-- Sub-menu 2 nivel-->
<ul class='submenu'>
<li><a href="produto.php">PRODUTO</a></li>
<li><a href="#">CLIENTE</a></li>
</ul> <!--fim da ul do submenu #fim while submenu -->
</li>
<ul class='submenu'>
<li><a href="produto.php">PRODUTO</a></li>
<li><a href="#">CLIENTE</a></li>
</ul> <!--fim da ul do submenu #fim while submenu -->
</li>
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.