Ir para conteúdo

Arquivado

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

Luis Barbosa

Tabela 2 eixos dinamicos ?

Recommended Posts

Opa galerinha blza ?

To aqui quebrando a cabeca a um tempo tentando fazer o seguinte, tenho na base de dados 3 tabelas, 1 de tamanho e 1 de cor e uma de "estoque".

Queria fazer uma tabelinha onde tanto o eixo X quanto o eixo Y sao dinamicos sabendo que tanto as cores qnto os tamanhos sao dinamicos. Entao como posso ter tamanhos P M G posso ter tamanhos 33 34 35 dependendo do meui "produto" mas ja estou resgatando certo no "estoque".

Alguem tem alguma ideia de como posso fazer isso ?

Vlws

P M G
Branco qnt qnt qnt
Azul qnt qnt qnt
Amarelo qnt qnt qnt

arr Cor

Array
(
    [0] => stdClass Object
        (
            [id_cor] => 1
            [descricao] => Branco
        )
    [1] => stdClass Object
        (
            [id_cor] => 2
            [descricao] => Preto
        )
    [2] => stdClass Object
        (
            [id_cor] => 3
            [descricao] => Azul
        )
)arr tamanho
Array
(
    [0] => stdClass Object
        (
            [tamanho] => P
        )
[1] => stdClass Object ( [tamanho] => M )    [2] => stdClass Object
        (
            [tamanho] => G
        ))

ARR "estoque"

Array
(
    [0] => stdClass Object
        (       
            [quantidade] => 68
            [cor] => Branco
            [tamanho] => 10
        )

    [1] => stdClass Object
        (
            [quantidade] => 31
            [cor] => Azul
            [tamanho] => 10
        )

    [2] => stdClass Object
        (
            [quantidade] => 68
            [cor] => Preto
            [tamanho] => 10
        ))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha duvida é como montar no html para a tabela ficar certa.

algo assim:

<table style="align:right;border:1; " class="nova"  id="nova" > 
 <tbody>
      <tr>
           <td></td>
           {{foreach from=$tamanhos item=tamanho}}
                   <td>{{$tamanho->tamanho}}</td>           // ESSE FAZ O EIXO X EM CIMA
           {{/foreach}}
      </tr>
 
      {{foreach from=$cores item=cor}}
           <tr>
                   <td>{{$cor->descricao}}</td>           // esse faz o eixo y
           </tr>
      {{/foreach}}
   </tbody>
</html>

Eu para colocar os dados do meio "array estoque" deveria fazer um outro foreach onde ?

Tava pensando em dentro do foreach de cores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao mas como eu faria isso se no array de cores eu nao vou ter a informacao do que esta no cabeçalho ?

 

No array de cores eu conseguiria fazer a comparacao com o array de estoque mas a informacao do que esta no cabeçalho eu nao teria.

 

Se eu fiz

 

<tr>
<td></td>
{{foreach from=$tamanhos item=tamanho}}
<td>{{$tamanho->tamanho}}</td> // ESSE FAZ O EIXO X EM CIMA
{{/foreach}}
</tr>
e so depois eu vou fazer:
{{foreach from=$cores item=cor}}
<tr>
<td>{{$cor->descricao}}</td> // esse faz o eixo y
{{foreach from=$estoque item=$est}}
{{if $est->cor == $cor->descricao and $est->tamanho == ?????? }} // aqui deveria verifica o tamanho tmb
<td>{{$est->quantidade}}</td>
{{/if}}
{{/foreach}}
</tr>
{{/foreach}}
o problema é que ali nao vou ter a informacao do tamanho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De que forma seria isso ? Porque eu ate consigo salvar a quantidade de colunas, mas nao consigo criar uma variavel dinamica para conter o valor de cada tamanho.

Ex:.

{{assign var='colunas' value=0}}
{{foreach from=$tamanhos item=tamanho}}
	{{assign var='colunas' value=$colunas+1}}
	<td>{{$tamanho->tamanho}}</td>  
	{{assign var='coluna1' value=$tamanho->tamanho}} // aqui o 1 do coluna1 deveria ser dinamico	
{{/foreach}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei nao conseguindo fazer assim da forma que eu queria com Smarty.

 

utilizei JQuery para resolver meu problema.

{{assign var='colunas' value=0}}
{{foreach from=$tamanhos item=tamanho}}
	{{assign var='colunas' value=$colunas+1}}
	<td>{{$tamanho->tamanho}}</td>  	
{{/foreach}}

{{foreach from=$cores item=cor}}
	<tr>
		<td>{{$cor->descricao}}</td>  
			      
		{{assign var='passadas' value=0}}
  		{{foreach from=$estoque key=key item=est}}
		    {{if $colunas > $passadas }}	  
            		  <td><div id="{{$tamanhos.$passadas->tamanho}}_{{$cor->id_cor}}"></div></td>
		           {{assign var='passadas' value=$passadas+1}}
		    {{/if}}

		{{/foreach}}
			</tr>
			
{{/foreach}}

E depois apenas utilizei uma funcao para alterar o valor da DIV.

function mostraGrade(estoque){
	    
     jQuery.each( estoque, function( i, val ) {
	var idDiv = "."+val.tamanho+"_"+val.id_cor; 
        $(idDiv).html("");
	$(idDiv).append(val.quantidade);	       
      });
}

Vlw galera, topico resolvido ;)

 

Abraços

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.