Ir para conteúdo

POWERED BY:

Arquivado

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

rtmfigueiredo

fazer tabela mudar cor da <tr> por condição em grup

Recommended Posts

Olá

Pessoal, estou precisando de ajuda. Vi muitos posts sobre tabelas zebradas, porém preciso de algo mais. Tabela zebrada por GRUPO,

Tenho um sistema interno de secretaria de uma faculdade e quando puxo as disciplinas do CURSO de ADMINISTRACAO, por exemplo, ele traz as disciplinas da série 01, 02, 03, 04, 05, 06, 07 e 08 semestre. Preciso que ele ZEBRE por GRUPO, ou seja, as disciplinas da TURMA 01 seria branco, as disciplinas da turma 02 seria cinza, as da turma 03 volta pra branco, e assim por diante.

Tentei vários posts da net e nada, não saio do lugar, estou quase desistindo pois só acho como zebrar em linhas intercaladas e nada em grupo, por favor, me ajudem. Segue o código que estou usando, só falta implementar essa funçao para facilitar a visualização..

<tr style="color:White;background-color:#4191A0;">
                   <th align="center" scope="col" style="width:3%; white-space:nowrap;">Semestre</th><th align="center" scope="col" style="width:10%;">Curso</th><th align="center" scope="col" style="width:5%;">Grade</th><th align="center" scope="col" style="width:5%;">Série</th><th align="center" scope="col" style="width:5%;">Turma</th><th align="center" scope="col" style="width:5%;">Tipo</th><th align="center" scope="col" style="width:5%;">Cod</th><th align="center" scope="col" style="width:15%;">Disciplina</th><th align="center" scope="col" style="width:15%;">Professor</th><th align="center" scope="col" style="width:5%;">NP1</th><th align="center" scope="col" style="width:5%;">NP2</th><th align="center" scope="col" style="width:5%;">SUB</th><th align="center" scope="col" style="width:5%;">EXAME</th><th align="center" scope="col" style="width:5%;">MS</th><th align="center" scope="col" style="width:5%;">Pendencia</th></tr>
a partir daqui começa o que preciso fazer....

    <?php while($row = mysqli_fetch_object($query)) { ?>
<tr  ondblclick="javascript:location.href='#';" >
                     <td width='3%' style="white-space:nowrap;"><?php echo $row->ano_letivo ?></td>
                     <td width='10%' style="white-space:nowrap;"><?php echo $row->curso ?></td>
                     <td width='5%'><?php echo $row->grade ?></td>
                     <td width='5%'><?php echo $row->serie ?></td>    
                     <td width='5%'><?php echo $row->turma ?></td>    <---- aqui eu tenho turma A, B e cada uma tem em média 7 disciplinas
                     <td width='5%'><?php echo $row->tipo_turma ?></td>
                     <td width='5%'><?php echo $row->disc_cod ?></td>
                     <td width='15%' style="white-space:nowrap;"><?php echo $row->disc_nome ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->professor ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->b1 ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->b2 ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->sub ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->ex ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->ms ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->pendencia ?></td>
                    </tr>
                <?php } ?>

Espero que possam me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

// Supondo que os valores de $row->turma sejam numéricos

Crie Classes css e proceda assim:

<?php while($row = mysqli_fetch_object($query)) {?>
<tr  ondblclick="javascript:location.href='#';" class="tr_<?=$row->turma?>">

Compartilhar este post


Link para o post
Compartilhar em outros sites

São numeros e letras, seria complicado fazer css, pois cada curso tem seu codigo 2 letras +1 Numero +1letra +2 numeros, unicos para cada grupo e são mais de 200 grupos, dai entra as filtragens.conforme curso, enfim.. nao consegui pensar em uma solução , minha cabeça ta coçando rsrsrs

Me ajudem se possível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei a solução em um post em um site após revirar a internet, mudei um parâmetro e deu certo, segue a dica a todos:

<?php
$n = "";
while($row = mysqli_fetch_object($query)) {
IF ($n!= $row->turma) {
$cor++;
$n = $row->turma ;
}
$muda_cor = (($cor%2)!=0) ? "White" : "AliceBlue";
?>
<tr style="background-color:<?php echo $muda_cor ?>;" ondblclick="javascript:location.href='../secretaria_principal.php';" >
<td width='3%' style="white-space:nowrap;"><?php echo $row->ano_letivo ?></td>
<td width='10%' style="white-space:nowrap;"><?php echo $row->curso ?></td>
<td width='5%'><?php echo $row->grade ?></td>
<td width='5%'><?php echo $row->serie ?></td>
<td width='5%'><?php echo $row->turma ?></td>
<td width='5%'><?php echo $row->tipo_turma ?></td>
<td width='5%'><?php echo $row->disc_cod ?></td>
<td width='15%' style="white-space:nowrap;"><?php echo $row->disc_nome ?></td>
<td width='5%' style="white-space:nowrap;"><?php echo $row->professor ?></td>
<td width='5%' style="white-space:nowrap;"><?php echo $row->b1 ?></td>
<td width='5%' style="white-space:nowrap;"><?php echo $row->b2 ?></td>
<td width='5%' style="white-space:nowrap;"><?php echo $row->sub ?></td>
<td width='5%' style="white-space:nowrap;"><?php echo $row->ex ?></td>
<td width='5%' style="white-space:nowrap;"><?php echo $row->ms ?></td>
<td width='5%' style="white-space:nowrap;"><?php echo $row->pendencia ?></td>
</tr>
<?php } ?>
Veja a modificação:

No post encontrado:

$muda_cor = (($cor%2)==0) ? "White" : "AliceBlue";
modifiquei para:

$muda_cor = (($cor%2)!=0) ? "White" : "AliceBlue";

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php while($row = mysqli_fetch_object($query)) { ?>
                <?php 
                if($cont % 2 == 0){
                    //par
                    $cor = 'black';
                }else{
                    //impar
                    $cor = 'white';
                }
                ?>
                <tr  ondblclick="javascript:location.href='#';" style="background-color:<?php echo $cor ?>">
                     <td width='3%' style="white-space:nowrap;"><?php echo $row->ano_letivo ?></td>
                     <td width='10%' style="white-space:nowrap;"><?php echo $row->curso ?></td>
                     <td width='5%'><?php echo $row->grade ?></td>
                     <td width='5%'><?php echo $row->serie ?></td>    
                     <td width='5%'><?php echo $row->turma ?></td>    <---- aqui eu tenho turma A, B e cada uma tem em média 7 disciplinas
                     <td width='5%'><?php echo $row->tipo_turma ?></td>
                     <td width='5%'><?php echo $row->disc_cod ?></td>
                     <td width='15%' style="white-space:nowrap;"><?php echo $row->disc_nome ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->professor ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->b1 ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->b2 ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->sub ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->ex ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->ms ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->pendencia ?></td>
                </tr>
                <?php $cont = $cont + 1 ?>
<?php } ?>

Pensei em um jeito, mas não sei se é a melhor maneira, segue o script abaixo:

Basicamente é o seguinte, tu coloca um contador dentro do while, e no começo verifica se esse contador for um numero impar a cor fica 'x', se for par fica 'y'

<?php while($row = mysqli_fetch_object($query)) { ?>
                <?php 
                if($cont % 2 == 0){
                    //par
                    $cor = 'black';
                }else{
                    //impar
                    $cor = 'white';
                }
                ?>
                <tr  ondblclick="javascript:location.href='#';" style="background-color:<?php echo $cor ?>">
                     <td width='3%' style="white-space:nowrap;"><?php echo $row->ano_letivo ?></td>
                     <td width='10%' style="white-space:nowrap;"><?php echo $row->curso ?></td>
                     <td width='5%'><?php echo $row->grade ?></td>
                     <td width='5%'><?php echo $row->serie ?></td>    
                     <td width='5%'><?php echo $row->turma ?></td>    <---- aqui eu tenho turma A, B e cada uma tem em média 7 disciplinas
                     <td width='5%'><?php echo $row->tipo_turma ?></td>
                     <td width='5%'><?php echo $row->disc_cod ?></td>
                     <td width='15%' style="white-space:nowrap;"><?php echo $row->disc_nome ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->professor ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->b1 ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->b2 ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->sub ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->ex ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->ms ?></td>
                     <td width='5%' style="white-space:nowrap;"><?php echo $row->pendencia ?></td>
                </tr>
                <?php $cont = $cont + 1 ?>
<?php } ?>

Pensei em um jeito, mas não sei se é a melhor maneira, segue o script abaixo:

Basicamente é o seguinte, tu coloca um contador dentro do while, e no começo verifica se esse contador for um numero impar a cor fica 'x', se for par fica 'y'

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.