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

CRUD Menu recursivo/tree


jmlab

Pergunta

Se alguém puder ajudar, agradeço imenso :D

Tenho um "tree menu" num site que estou a construir.

Não sei como inserir um novo item no menu com um CRUD, ou seja, se quiser adicionar um novo botão, tenho de dizer qual o idPai onde quero inserir o botão, certo? Os "idPai" serão os existentes (nenhum novo poderá ser criado), mas poderiamos criar "filhos" sem limite. Gostaria que essa lista (idPai's - 7 no total) fosse apresentada através dum drop list, para que, ao fazer o formulário de inserção, fosse apenas necessário selecionar o item da drop list e após submeter o formulário, o novo botão estaria criado.

Este é o meu menu recursivo:

<?php
//call the recursive function to print category listing
category_tree(0);
                
//Recursive php function
function category_tree($menuPai){
global $dbc;
                
$q = "SELECT * FROM menuCAL WHERE idPai ='".$menuPai."'";
$r = $dbc->query($q);
                
while($row = mysqli_fetch_object($r)):
$i = 0;
if ($i == 0) echo '<ul class="menuCAL">';
echo '<li><a href="?page='.$row->id,'">' . $row->GlyPrincipal . $row->GlySecundario . $row->menuNomePT, '</a>';
category_tree($row->id);
echo '</li>';
$i++;
if ($i > 0) echo '</ul>';
endwhile;
}
?>

Este o meu formulário CRUD de inserção:

<!-- Textos & Formulários Start --> 
<div class="row">
<div class="col-lg-12">

<?php
if(isset($_POST['enviado']) == 1) {
$q = "INSERT INTO menuCAL () VALUES ()";
$r = mysqli($dbc, $q);
                                
if($r) {
echo'<p>A página foi adicionada!</p>';    
} else {
echo '<p>A página não foi adicionada, devido ao seguinte erro: '.mysqli_error($dbc);
echo '<p>' .$q.'</p>';    
}
}
?>

<!-- Formulário Start --> 
<form action="adicionar_pagina.php" method="post" role="form">

<!-- Campo Label Start -->
<div class="form-group">
<label for="label">Label</label>
<input type="text" class="form-control" name="label" id="label" placeholder="Texto a colocar na URL (SEO)">
</div>
<!-- Campo Label End -->

<!-- Campo header Start -->
<div class="form-group">
<label for="menuNomePT">Header</label>
<input type="text" class="form-control" name="header" id="header" placeholder="Texto descritivo a colocar no topo do website">
</div>
<!-- Campo header End -->

<!-- Campo ID Menu Pai Start -->
<div class="form-group">
<label for="idPai">Adicionar a:</label>
<select class="form-control" name="idPai" id="idPai">
<option></option>
</select>
</div>
<!-- Campo ID Menu Pai Start -->

<!-- Campo menuNomePT Start -->
<div class="form-group">
<label for="menuNomePT">Título PT</label>
<input type="text" class="form-control" name="menuNomePT" id="menuNomePT" placeholder="Insira o título em Português">
</div>
<!-- Campo menuNomePT End -->

<!-- Campo conteudo_pagina_PT Start -->
<div class="form-group">
<label for="conteudo_pagina_EN">Conteúdos PT</label>
<textarea class="form-control" name="conteudo_pagina_PT" rows="12" id="conteudo_pagina_PT" placeholder="Insira os textos em Português"></textarea>
</div>
<!-- Campo conteudo_pagina_PT End -->

<!-- Campo menuNomeEN Start -->
<div class="form-group">
<label for="menuNomePT">Título EN</label>
<input type="text" class="form-control" name="menuNomeEN" id="menuNomeEN" placeholder="Insira o título em Inglês">
</div>
<!-- Campo menuNomeEN End -->

<!-- Campo conteudo_pagina_EN Start -->
<div class="form-group">
<label for="conteudo_pagina_EN">Conteúdos EN</label>
<textarea class="form-control" name="conteudo_pagina_EN" rows="12" id="conteudo_pagina_EN" placeholder="Insira os textos em Inglês"></textarea>
</div>
<!-- Campo conteudo_pagina_EN End -->

</div>
<button type="submit" class="btn btn-default adic_concluir">Gravar</button>
<input type="hidden" name="enviado" value="1">
</form>
<!-- Formulário End -->

</div>
</div>
<!-- Textos & Formulários End -->

Obrigado smile.png

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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