Ir para conteúdo

POWERED BY:

Arquivado

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

lucas85d

Categoria e Subcategoria como Fazer

Recommended Posts

Boa tarde,

 

Sou aprendiz e conto com ajuda dos membros do forum para solução do meu problema.

O que quero fazer é o seguinte:

 

 

Coturnos

  • Cano longo
  • Cano médio
  • Cano curto

Acessórios

  • Faca
  • Canivete

o que eu fiz até agora foi:

 

no controller tenho os seguintes códigos:

$this->load->model('Categoria_model', 'Categoria');

$data['categorias'] = $this->Categoria->lista();

$data['subcategorias'] = $this->Categoria->getSubcategoria(1); // aqui coloquei 1 para testar

 

 

$data['main_content'] = 'site/teste';

$this->load->view('site/teste', $data);

 

 

model:

public function lista(){

$query = $this->db->get('categoria');

return $query->result();

}

 

 

public function getSubcategoria($idCategoria){

$this->db->select('Cs.idCategoria, C.descricao as descricao_categoria,

Cs.idSubcategoria, S.descricao as descricao_subcategoria');

$this->db->from('categoria_subcategoria Cs');

$this->db->join('categoria C', 'C.idCategoria = Cs.idCategoria');

$this->db->join('subcategoria S', 'S.idSubcategoria = Cs.idSubcategoria');

$this->db->where('Cs.idCategoria', $idCategoria);

$query = $this->db->get();

return $query->result();

}

 

view:

 

 

<div id="menu-produtos">

<ul class="dropdown-menu"

style="display: block; position: static; margin-bottom: 5px; *width: 180px;

border-width: medium; border-style: solid; border-color: #1F5019;

border-radius:20px; margin-left: 20px; min-width: 220px;">

<?php foreach($categorias as $categoria): ?>

<li class="dropdown-submenu"><a href="#"><?php echo $categoria->descricao;?></a>

<ul class="dropdown-menu menu-produto-item">

<?php foreach($subcategorias as $subcategoria): ?>

<li><a href="#"><?php echo $subcategoria->descricao_subcategoria; ?></a></li>

<?php endforeach ?>

</ul>

</li>

<?php endforeach ?>

</div>

 

 

O Resultado é:

 

 

Coturnos

  • Cano longo
  • Cano médio
  • Cano curto

Acessórios

  • Cano longo
  • Cano médio
  • Cano curto

No controller eu passei (getSubcategoria(1); para trazer a mesma subcategorias em todas as categorias, dai para frente não saio do lugar.

 

Alguém poderia me ajudar.

Obrigado.

 

 

 

 

 

 

 

 

 

Alguém poderia me ajudar????????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que tu poderia fazer o seguinte:

 

Na model, busque todas as categorias pais, na mesma função da model, faça um foreach buscando todas as filhas da categoria, e adicione no array que vai ser retornado a controller.

 

já na view, faça o primeiro foreach, adicione o nome da categoria, depois faça um novo foreach buscando as categorias.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia gremio10,

 

Primeiramente obrigado pela ajuda.

Então ontem eu fiz uma alteração que resolve o problema, só não sei se é correto fazer o que fiz na view. Eu acrescentei uma linha na view, então ficou:

<div id="menu-produtos">
<ul class="dropdown-menu"
style="display: block; position: static; margin-bottom: 5px; *width: 180px;
border-width: medium; border-style: solid; border-color: #1F5019;
border-radius:20px; margin-left: 20px; min-width: 220px;">
<li class="titulo-produtos">Produtos da Loja</li>
<?php foreach($categorias as $categoria): ?>
<li class="dropdown-submenu"><a href="<?php echo base_url();?>produto/categoria/<?php echo $categoria->idCategoria;?> "><?php echo $categoria->descricao;?></a>
<ul class="dropdown-menu menu-produto-item">
<?php $subcategorias = $this->Categoria->getSubcategoria($categoria->idCategoria); ?>
<?php foreach($subcategorias as $subcategoria): ?>
<li><a href="<?php echo base_url();?>produto/categoria/<?php echo $categoria->idCategoria;?>"><?php echo $subcategoria->descricao_subcategoria; ?></a></li>
<?php endforeach ?>
</ul>
</li>
<?php endforeach ?>
</ul>
</div>
Agora quanto a sua dica poderia me exemplificar a construção do array e o retorno(Model) para que eu posso colocar na view.
Ainda estou gatinhando na questão de array e o codeigniter.
Obrigado pela ajuda.

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.