Ir para conteúdo
Fórum Script Brasil
  • 0

Menu com mysql


Douglas Pascini

Pergunta

Bom dia.

Estou com dificuldade em fazer com que o menu que criei funcione corretamente. Ele está sendo mondado (visualmente) correto, porem onde deveria fazer a chamada para um "form" não funciona, na verdade não chama nada. Por exemplo, 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.

Anexo esta o script e um exemplo do menu.

<?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>

";

}

?>

<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>

<li><a href="#">RELATORIO</a> <!-- Sub-menu 2 nivel-->

<ul class='submenu'>

<li><a href="#">MOVIMENTO DE PRODUTO POR CLIENTE / OPERADOR</a></li>

<li><a href="#">CLIENTE POR OPERADOR</a></li>

<li><a href="#">CLIENTES INATIVOS</a></li>

</ul> <!--fim da ul do submenu #fim while submenu -->

</li>

<ul class='submenu'>

<li><a href="#">MOVIMENTO DE PRODUTO POR CLIENTE / OPERADOR</a></li>

<li><a href="#">CLIENTE POR OPERADOR</a></li>

<li><a href="#">CLIENTES INATIVOS/a></li>

</ul> <!--fim da ul do submenu #fim while submenu -->

</li>

<ul class='submenu'>

<li><a href="#">MOVIMENTO DE PRODUTO POR CLIENTE / OPERADOR</a></li>

<li><a href="#">CLIENTE POR OPERADOR</a></li>

<li><a href="#">CLIENTES INATIVOS</a></li>

</ul> <!--fim da ul do submenu #fim while submenu -->

</li>

<li><a href="#">CONFIGURACAO</a> <!-- Sub-menu 2 nivel-->

<ul class='submenu'>

<li><a href="#">ATUALIZA preço PRODUTO COM TABELA ABCFARMA</a></li>

</ul> <!--fim da ul do submenu #fim while submenu -->

</li>

<li><a href="#">PEDIDO</a> <!-- Sub-menu 2 nivel-->

<ul class='submenu'>

<li><a href="pedido.php">PEDIDO DE VENDA</a></li>

<li><a href="#">ORCAMENTO</a></li>

</ul> <!--fim da ul do submenu #fim while submenu -->

</li>

<ul class='submenu'>

<li><a href="pedido.php">PEDIDO DE VENDA</a></li>

<li><a href="#">ORCAMENTO</a></li>

</ul> <!--fim da ul do submenu #fim while submenu -->

</li>

</ul>

</ul>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

É o seguinte, fiz uma tabela que contem os dados de "descricao, nivel, link" que a partir dela monto meu menu, porem quando vejo o codigo que foi gerado atravez do script ele esta entrando em loop algumas vezes, sempre que o nivel maior que 1 tem outros niveis. Como pode ver no menu VENDA, tem CADASTRO e dentro dele tem CLIENTE e PRODUTO, porem esta repetindo .

Na funcao eu passo somente o codigo do usuario que esta ativo no momento, assim o pego somente os acesso que este tem que visualizar.

menu.png

<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>    
</li>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...