Ir para conteúdo

POWERED BY:

Arquivado

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

santos.ps2

[Resolvido] Aceder a valores de array associativo de smarty /php

Recommended Posts

Tenho o seguinte array associativo em php de categorias e subcategorias. Em smarty, Com uma instrução foreach, consigo listar as categorias mas não consigo listar o nome das subcategorias. Alguém sabe como aceder aos valores de nome_l1 : controlo de acessos e IPvt???

 

O array é o seguinte:

 

Array

(

[0] => Array

(

[nome_l1] => video IP3

[permalink_l1] => video-ip3

[id] => 1

[subcategoria] => Array

(

[0] => Array

(

[nome_l1] => controlo de acessos

[permalink_l1] => controlo-de-acessos

[id] => 2

)

 

[1] => Array

(

[nome_l1] => IPVT

[permalink_l1] => ipvt

[id] => 3

)

 

)

 

)

 

)

Quando processo o código:

{foreach from=$categorias item=item key=key}

<dt>{$item.nome_l1}</a></dt>

<dd><div class="indent">

<ul class="sub_menu">

<li>{$categorias[item][subcategoria].id}</li>

</ul>

</dd>

{/foreach}

obtenho o seguinte erro no compilador:

Notice: Undefined

index: subcategoria in /opt/lampp/htdocs/sites/testes/smarty/templates_c/%%35^353^35325133%%dir-categorias-servicos.tpl.php

on line 31

obrigado pela ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja bem a sua estrutura.

 

Você está fazendo isto:

 

{foreach from=$categorias item=item key=key}
 <dt>{$item.nome_l1}</a></dt> 
 <dd><div class="indent">
 <ul class="sub_menu">
 <li>{$categorias[item][subcategoria].id}</li>
 </ul>
 </dd>
 {/foreach}

Pedindo o item $item.nome_l1, o Smarty espera receber um array nessa estrutura.

 

Se você tentar a partir da chave, que é a estrutura certa do seu array, talvez funcione:

 

{$key.nome_l1}

Veja um exemplo:

 

$items_list = array(
			23 => array('no' => 2456, 'label' => 'Salad'),
			96 => array('no' => 4889, 'label' => 'Cream')
		);
$smarty->assign('items', $items_list);

Agora vamos tratar isso no template:

 

<ul>
{foreach from=$items key=myId item=i}
 <li><a href="item.php?id={$myId}">{$i.no}: {$i.label}</li>
{/foreach}
</ul>

Saída:

 

<ul>
 <li><a href="item.php?id=23">2456: Salad</li>
 <li><a href="item.php?id=96">4889: Cream</li>
</ul>

Compartilhar este post


Link para o post
Compartilhar em outros sites
<ul class="menu">
{foreach from=$categorias item=categoria}
 <li>{$categoria.nome_l1}
   <ul class="submenu">
     {foreach from=$categoria.subcategoria item=subcategoria}
       <li>{$subcategoria.nome_l1}</li>
     {/foreach}
   </ul>
 </li>
{/foreach}
</ul>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 <ul class="menu"> {foreach from=$categorias item=categoria} <li>{$categoria.nome_l1} <ul class="submenu"> {foreach from=$categoria.subcategoria item=subcategoria} <li>{$subcategoria.nome_l1}</li> {/foreach} </ul> </li> {/foreach} </ul> 

 

Boas, este ultimo post funcionou na totalidade.

 

muito obrigado!!!

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.