Dificuldade para listar categorias e subcategorias

Enviada por Guilherme Siquinelli 
Guilherme Siquinelli
Dificuldade para listar categorias e subcategorias
19 de January de 2012 às 06:20AM
Bom dia pessoal!

Gostaria de ajuda de vocês na listagem de categorias e subcategorias de forma que o HTML fique da forma correta.

Tabela do banco:

CREATE TABLE categorias(
id int(5) unsigned not null auto_increment,
id_pai int(5) unsigned not null,
nome varchar(20) not null,
Primary Key (id)
)

Função para montar o HTML:

function MontaMenu($id_pai, $arrayCats, $sub)
{
$catsSize = count($arrayCats);

if ($sub == 0)
{
$this->menu .= "<ul class='nav'>";
}
else
{
$this->menu .= "<ul class=\"sub-menu\">";
}

for ($i = 1; $i <= $catsSize; $i++)
{
if ($arrayCats[ $i ]['id_pai'] == $id_pai)
{
$cid = $arrayCats[ $i ]['id'];

$this->menu .= "<li>";
$this->menu .= "<a href=\"catalogo&cid=$cid\">";
$this->menu .= $arrayCats[ $i ]['categoria_pt'];
$this->menu .= "</a>";

// busca as subcategorias da categoria atual
self::MontaMenu( $arrayCats[ $i ]['id'], $arrayCats, 1 );

$this->menu .= "</li>";
}
}
$this->menu .= "</ul>";

return $this->menu;
}

Até funciona, contudo está listando desta forma:

<ul class='nav'>
<li><a href="catalogo&cid=1">Antenas</a>
<ul class="sub-menu"></ul>
</li>
<li><a href="catalogo&cid=2">Aros</a>
<ul class="sub-menu"></ul>
</li>
<li><a href="catalogo&cid=3">Baguetes</a>
<ul class="sub-menu"></ul>
</li>
<li><a href="catalogo&cid=4">Barra Chata</a>
<ul class="sub-menu">
<li><a href="catalogo&cid=5">Cantos arredondados</a>
<ul class="sub-menu"></ul>
</li>
<li><a href="catalogo&cid=6">Cantos vivos</a>
<ul class="sub-menu"></ul>
</li>
</ul>
</li>
</ul>

E o problema maior, é que quero usar Jquery Toggle para deixa-lo retrátil, e quando adiciono o JS para de funcionar o link e só funciona a função animada do Jquery.

Primeiramente gostaria da ajuda para listar o menu de forma correta, sem <ul></ul> desnecessários...

Podem me ajudar?
Fico no aguardo!
Valeeuu
Lucas Tiago de Moraes
Re: Dificuldade para listar categorias e subcategorias
22 de January de 2012 às 02:54AM
Qual o problema com <ul></ul>?

Parece que o erro é de JS, porque você postou código PHP.

Poste o código JS e o erro JS, com o navegador chrome você consegue ver o erro.

Se enviar essas informações podemos te ajudar, talvez se você tivesse sido mais claro na primeiro postagem já teria recebido sua resposta.

Falou.
Guilherme Siquinelli
Re: Dificuldade para listar categorias e subcategorias
23 de January de 2012 às 12:36PM
Ele estava adicionando <ul></lu> mesmo quando não havia submenu, mas consegui corrigir trocando o lugar dos <ul> no código PHP. e o Javascript resolvi usando treeview!

Mas valeu de qualquer forma Lucas!!!
Obrigado por responder.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.