Biel. 9 Denunciar post Postado Julho 10, 2015 Boa noite a todos. Pessoal gostaria muito de fazer o seguinte: não exibir link em menu que tenha submenu. O menu que tem submenu abaixo é Curso pago e Cursos gratis e aparece um link quando você encosta o cursor. O certo é ter link no submenu PHP Fireworks Photoshop e no menu dicas também , isso porque o menu dicas não tem submenu ... tab_menu idmm nome 1 Curso pago 2 Curso gratis 3 dicas tab_submenu idss id_cat nome 1 1 PHP 2 2 Fireworks 3 2 Photoshop tab_conteudo idcc id_cat conteudo 1 1 curso pago de php 2 2 curso grátis de Fireworks 3 2 curso grátis de Photoshop 4 3 dicas para você ... <?php $seleciona_categoria = mysql_query("SELECT * FROM tab_menu"); while($linha = mysql_fetch_array($seleciona_categoria)){ $idmm = $linha['idmm']; $nome = $linha['nome']; ?> <li> <a href="index.php?idmm=<?php echo $idmm;?>"class="classe" ><?php echo $nome; ?></a> <?php $seleciona_sub = mysql_query("SELECT * FROM tab_submenu WHERE id_cat = '$idmm' "); if(mysql_num_rows($seleciona_sub) == 0){ } else{ ?> <ul> <?php while($linha = mysql_fetch_array($seleciona_sub)){ $idss = $linha['idss']; $nome = $linha['nome']; ?> <li><a href="index.php?idss=<?php echo $idss?>"><?php echo $nome?></a></li> <?php } ?> </ul> <?php } ?> </li> <?php } ?> </ul> ... Pesquisei na internet e vi este site que não tem link em menu que tem submenu. Agora menu que não tem submenu o link aparece normalmente. Compartilhar este post Link para o post Compartilhar em outros sites
kcirtapsi 3 Denunciar post Postado Julho 10, 2015 Olá, Você pode retornar além do menu, sua quantidade de submenus, dessa forma, quando montar o menu, compare a quantidade de submenus, se for maior que 0, então você monta o menu sem link, teste o código abaixo: <?php /* Seleciona menu e quantidades de submenus */ $sql = " SELECT tm.idmm, tm.nome, COUNT(ts.*) AS qtd_sub FROM tab_menu tm INNER JOIN tab_submenu ts ON ts.id_cat = tm.idmm GROUP BY tm.idmm "; $seleciona_categoria = mysql_query($sql); while($linha = mysql_fetch_array($seleciona_categoria)){ $idmm = $linha['idmm']; $nome = $linha['nome']; $qtd_sub = $linha['qtd_sub']; if ($qtd_sub > 0) { ?> /* Tem submenu, então não cria link */ <li> <?php echo $nome; ?> <?php } else { ?> /* Não tem submenu, cria link */ <li> <a href="index.php?idmm=<?php echo $idmm;?>"class="classe" ><?php echo $nome; ?></a> <?php } $seleciona_sub = mysql_query("SELECT * FROM tab_submenu WHERE id_cat = '$idmm' "); if(mysql_num_rows($seleciona_sub) == 0){ } else{ ?> <ul> <?php while($linha = mysql_fetch_array($seleciona_sub)){ $idss = $linha['idss']; $nome = $linha['nome']; ?> <li><a href="index.php?idss=<?php echo $idss?>"><?php echo $nome?></a></li> <?php } ?> </ul> <?php } ?> </li> <?php } ?> </ul> Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Julho 10, 2015 kcirtapsi, obrigado por postar. Não conseguir fazer. Aqui você pode ver o menu dinâmico funcionando online. Abaixo temos todo o codigo na integra. o banco de dados é o mesmo. <style> *{padding:0;margin:0} #menu { list-style:none; width:196px; height:auto; -webkit-border-radius: 0px; border-radius: 0px; background:#585858; border:0px solid #0F0; /*margin-left:30%;*/ margin-top:10%; } #menu li { width:168px; float:left; display:block; text-align:left; position:relative; height:26px; line-height:26px; padding: 0px 0px 0px 28px; border-bottom:1px dotted #ACACAC; } #menu li a { font-size:0px; color:#EBEBEB; display:block; outline:0px; text-decoration:none; text-shadow: 0px 0px 0px; } #menu li:hover { background:#6D6D6D; border-bottom:1px dotted #ACACAC; /* Rounded corners */ -moz-border-radius: 0px 0px 0px 0px; -webkit-border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px; } /*==============================================*/ #menu li .classe { display:block; width:auto; font-size:16px; font-weight:normal; font-family:Tahoma, Arial, Verdana, "Trebuchet MS"; } #menu li:hover .classe { color:#FFF;/* branco */ } /*==============================================*/ #menu li ul li { padding: 4px 0px 4px 4px; text-align:left; width:144px; border-bottom:1px dotted #ACACAC; } #menu li ul li:hover { border:none; padding: 4px 0px 4px 4px; background-color:transparent; border-bottom:1px dotted #ACACAC; } #menu li:hover div a { font-size:14px; color:#EBEBEB; font-family:Tahoma, Arial, Verdana, "Trebuchet MS"; } #menu li:hover div a:hover { color:#F90; /*laranja */ } .classe-3{ width:144px; background:#6D6D6D; float:left; position:absolute; left:-999em; /* Hides the drop down */ text-align:left; padding:0px 14px 0px 14px; border-right:0px solid #F00; border-bottom:0px solid #F00; /* Rounded Corners */ -moz-border-radius: 0px 10px 10px 0px; -webkit-border-radius: 0px 10px 10px 0px; border-radius: 0px 10px 10px 0px; } #menu li:hover .classe-3{ left:196px; top:0px; right:auto; } .cabecalho9 {color:#F5F5F5; font-size:16px; font-weight:bold; text-align:left; } #menu_neutro_01{ width:190px; height:20px; clear:both; background:#585858;} </style> <!--=============================================================--> <ul id="menu"> <?php $seleciona_categoria = mysql_query("SELECT * FROM tab_menu")or die (mysql_error()); while($linha = mysql_fetch_array($seleciona_categoria)){ $idmm = $linha['idmm']; $nome = $linha['nome']; ?> <li> <a href="index.php?idmm=<?php echo $idmm;?>"class="classe" ><?php echo $nome; ?></a> <div class="classe-3"> <ul> <?php $seleciona_sub = mysql_query("SELECT * FROM tab_submenu WHERE id_cat = '$idmm' ")or die (mysql_error()); while($linha = mysql_fetch_array($seleciona_sub)){ $idss = $linha['idss']; $nome = $linha['nome']; if(mysql_num_rows($seleciona_sub) == 0){ } else{ ?> <li><a href="index.php?idss=<?php echo $idss?>"><?php echo $nome?></a></li> <?php } } ?> </ul> </div> </li> <?php } ?> <div id="menu_neutro_01"></div> </ul> <!--========================================================================--> <br> <hr> <?php $get1= $_GET['idss']; $get2= $_GET['idmm']; $sql = mysql_query("SELECT * FROM tab_conteudo WHERE idcc = '".$get1."' OR id_cat = '".$get2."' ")or die (msql_error()); while($linha = mysql_fetch_array($sql)){ $conteudo = $linha['conteudo']; ?> <?php echo $conteudo;?><br /> <?php } ?> Compartilhar este post Link para o post Compartilhar em outros sites
kcirtapsi 3 Denunciar post Postado Julho 13, 2015 Mas se você executar o código que te mandei, o que acontece? Mas você entendeu a idéia? Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Julho 13, 2015 kcirtapsi, entendi sim. Veja: Tem um pequeno detalhe muito importante O menu dicas não tem submenu. Gostaria que aparecesse o link no menu dicas. O certo é ter link no submenu PHPFireworksPhotoshope no menu dicas também , isso porque o menu dicas não tem submenu Veja aqui como ficou o menu Compartilhar este post Link para o post Compartilhar em outros sites
kcirtapsi 3 Denunciar post Postado Julho 13, 2015 Então o que você pode fazer é: No caso dos MENUS, executar a query SQL que te mandei, e montar um array com menus e quantidade de sub. No caso de submenus, você faz a mesma coisa, executa outra query SQL, verificando se cada submenu possui outro submenu como filho, mesmo conceito da query SQL de cima, e guarde isso em outro array: Na hora que você for montar link de menu, você consulta o primeiro array: Ex: supondo que o array seja: $menus = array('1' => 1) // indice é o id do menu e menu e quantidade de submenu filho if ( $menus[$id_do_menu] > 0) { //possui link } else { // não possui } espero ajudar Compartilhar este post Link para o post Compartilhar em outros sites
Biel. 9 Denunciar post Postado Julho 13, 2015 kcirtapsi, obrigado por ter me ajudado bastante. Para um iniciante em php que é o meu caso, entender o que você digitou no ultimo post é mais dificil que um exemplo prático. Se você fizesse um breve exemplo prático baseado nas duas tabelas abaixo, eu entenderia rapidamente a ideia e resolveria a questão do menu. Obrigado! ... tab_menu idmm nome 1 Curso pago 2 Curso gratis 3 dicas tab_submenu idss id_cat nome 1 1 PHP 2 2 Fireworks 3 2 Photoshop Compartilhar este post Link para o post Compartilhar em outros sites