Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago K.

Comparar e não mostrar

Recommended Posts

Olá amigos, esse é o meu primeiro post e espero que consigam me ajudar. Meu problema é o seguinte.

 

Estou fazendo um menu usando os parâmetros <ul> <li> e jquery.

O menu está sendo alimentado de um banco de dados e possui um submenu "collapse".

A tabela de registros está da seguinte forma: ID, IDcategoria e nome. Onde ID é auto e IDgaleria relaciona o ID como um submenu.

 

Ex.:

 

ID---IDgaleria---nome

1----0------------menu 1

2----0------------menu 2

3----1------------submenu 1

4----1------------submenu 1

5----2------------submenu 2

6----2------------submenu 2

7----0------------menu 3

8----0------------menu 4

O fonte já executado fica da seguinte forma.

 

<ul id="menu"> 
	  <li><a href="default.asp">Home</a></li> 
	  <li><a href="">Menu 1</a> 
	 <ul> 
	  <li><a href="conteudo.asp?ID=3">sub menu 1</a></li> 
	  <li><a href="conteudo.asp?ID=4">sub menu 1</a></li> 
	</ul> 
	</li> 
	  <li><a href="">Menu 2</a> 
	 <ul> 
	  <li><a href="conteudo.asp?ID=5">sub menu 2</a></li> 
	  <li><a href="conteudo.asp?ID=6">sub menu 2</a></li> 
	</ul> 
	</li> 
	  <li><a href="conteudo.asp?ID=7">Menu 3</a> 
	 [color="#FF0000"]<ul> 
	</ul>[/color] 
	</li> 
	  <li><a href="conteudo.asp?ID=8">Menu 4</a> 
	 [color="#FF0000"]<ul> 
	</ul>[/color]
	</li> 
	</ul>

O meu problema acontece que quando o menu não tem um submenu não quero que mostre o <ul></ul> do sub, porque assim ele ainda entende que tem submenu e não deixa acionar o link como se fosse primário. Já tentei usar if then mas não consegui, ou ele mostra pra todos ou não mostra pra ninguém.

 

Agradeço a ajuda desde já...

 

Abs.

 

// Thiago K.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, já to postando (rs)

 

Segue o código do menu. Em vermelho o trecho do <ul> que deveria aparecer apenas quando tem um submenu relacionado. Em verde o trecho com o rs do submenu.

 

<%

Set rsMenu = Server.CreateObject("ADODB.RecordSet")

sql = ""

sql = sql & " Select ID, nome, IDcategoria "

sql = sql & " FROM tb_categoria "

sql = sql & " WHERE IDcategoria = 0 "

 

rsMenu.Open SQL, Conexao, 3, 3

%>

<ul id="menu" class="menu collapsible">

<li><a href="default.asp">Home</a></li>

<%While NOT rsMenu.EOF%>

<li><a href="conteudo.asp?ID=<%=rsMenu(0)%>"><%=rsMenu(1)%></a>

<% if rsMenu(2) <> rsMenu(0) then %>

<ul>

<%

Set rsMenuSub = Server.CreateObject("ADODB.RecordSet")

sql = ""

sql = sql & " SELECT ID, IDcategoria, nome "

sql = sql & " FROM tb_categoria "

sql = sql & " WHERE IDcategoria = "&rsMenu(0)&" "

sql = sql & " ORDER BY IDcategoria "

 

rsMenuSub.Open SQL, Conexao, 3, 3

 

While Not rsMenuSub.EOF

%> <li><a href="conteudo.asp?ID=<%=rsMenuSub(0)%>"><%=rsMenuSub(2)%></a></li>

<%

rsMenuSub.MoveNext

Wend

%>

</ul>

<% end if %>

</li>

<%

rsMenu.MoveNext()

Wend

%>

</ul>

Abs e obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara me explique o que é isso

 

<% if rsMenu(2) <> rsMenu(0) then %>

 

o que significa rsmenu(2) e o que significa rsMenu(0) quais os resultados que aparecem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Patrique, isso é uma tentativa de dar certo (rs)

 

Tentei comparar para não mostrar quando não tiver registro no IDgaleria, mas como foi uma tentativa não sei a maneira certa de passar isso. (rs)

 

rsMenu(0) é o ID (auto)

rsmenu(2) é o IDgaleria que grava do ID

 

Imagine que a tabela está assim:

 

ID---IDgaleria---nome

1----0------------menu 1

2----0------------menu 2

3----1------------submenu 1

4----1------------submenu 1

5----2------------submenu 2

6----2------------submenu 2

7----0------------menu 3

8----0------------menu 4

E mostra isso:

 

<ul id="menu"> 
<li><a href="default.asp">Home</a></li> 
<li><a href="">Menu 1</a> 
<ul> 
<li><a href="conteudo.asp?ID=3">sub menu 1</a></li> 
<li><a href="conteudo.asp?ID=4">sub menu 1</a></li> 
</ul> 
</li> 
<li><a href="">Menu 2</a> 
<ul> 
<li><a href="conteudo.asp?ID=5">sub menu 2</a></li> 
<li><a href="conteudo.asp?ID=6">sub menu 2</a></li> 
</ul> 
</li>
<li><a href="conteudo.asp?ID=7">Menu 3</a> 
[color="#FF0000"]<ul> 
</ul>[/color] 
</li> 
<li><a href="conteudo.asp?ID=8">Menu 4</a> 
[color="#FF0000"]<ul> 
</ul>[/color]
</li> 
</ul>

Eu gostaria que não aparecesse esses <ul></ul> em vermelho, porque não tem nenhum submenu para ele.

 

Deu para entender?

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então os subs menus sempre vão estar este numbers

 

1------------submenu 1

2------------submenu 2

 

dae quando for 0 é por que não existe submenu, é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Patrique, quando 0 são menus que o cliente não pode alterar e nem incluir um novo, mas o cliente poderá criar sub dentro deles, então pode ser que o menu 4 tenha um sub ai sim ele terá que mostrar o <ul>

 

Acho que eu teria que comprar se existe um número do ID dentro do IDcategoria se tiver mostra <ul> caso contrário não.

 

Eu fiz tudo em uma tabela mas seria a mesma coisa que criar uma tabela menu com ID e nome e uma tabela submenu com ID, IDcategoria e nome.

 

Achei que seria melhor organizar tudo em uma tabela. Acha que isso tem dificultado?

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.