I want to change the color of the button according to the value of the variable

I created an if/elseif condition inside foreache, to change the color of the payment status button. I have three statuses and are three colors for Home status. Except he's not picking up the colors. I think the problem is when it comes to clarifying the values for the variable. I'll send a print of my screen.

My screen

 <?php
                    $query = $this->sindico->get_listfinanceiro()->result();
                    foreach ($query as $linha):
                        echo '<tr>';
                        printf('<td>%s / %s</td>', ($linha->numero_apart) ? :'/', ($linha->nome_usu));
                        printf('<td>%s</td>', $linha->data_pagamento);
                        printf('<td>%s</td>', "Bs:".$linha->valor_pagamento);
                        $class = "" ;
                        if (!isset($linha->valor_pagamento["PAGO"])){
                            $class =  'btn-sucesso' ;}

                        elseif (!isset($linha->valor_pagamento["PENDENTE"])){
                            $class =  'btn-warning' ;}

                        elseif (!isset($linha->valor_pagamento['NO PAGO'])){
                            $class =  'btn-danger' ;}
                        printf('<td><button type="button" class="btn '.$class.' btn-xs">%s</button></td>', $linha->status_pagamento);
                        printf('<td class="text-center">%s</td>', '<div class="btn-group btn-xs"><button data-toggle="dropdown" class="btn btn-xs dropdown-toggle"  data-original-title="" title="">Action<span class="caret"></span></button><ul class="dropdown-menu pull-right"><li><a href="editar/'.$linha->id_finan.'">Edit</a></li><li><a href="excluir/'.$linha->id_finan.'">Delete</a></li>' );

                        echo '</tr>';
                    endforeach;
                    ?>
Author: Ramon Chaves, 2016-07-15

3 answers

Change !isset to isset. If $linha has been initialized echo "sucess"!

 0
Author: MagicHat, 2016-07-15 03:31:25

In general if you swap !isset for isset it will work...

But, just by disengagement, debug seeing if you are entering if, throw a exit('Aqui') inside if to make sure you are entering...

 0
Author: HananiaMizrahi, 2016-07-19 00:08:49

Already tried to swap:

  • btn-success by btn-success
  • !isset by isset
  • And for danger it could be just an else

    <?php
       $query = $this->sindico->get_listfinanceiro()->result();
       foreach ($query as $linha):
         echo '<tr>';
           printf('<td>%s / %s</td>', ($linha->numero_apart) ? :'/', ($linha->nome_usu));
           printf('<td>%s</td>', $linha->data_pagamento);
           printf('<td>%s</td>', "Bs:".$linha->valor_pagamento);
           $class = "" ;
           if (isset($linha->valor_pagamento['PAGO'])){
              $class =  'btn-success' ;
           }
    
           elseif (isset($linha->valor_pagamento['PENDENTE'])){
              $class =  'btn-warning' ;
           } else {
              $class =  'btn-danger' ;
           }
    
           printf('<td><button type="button" class="btn '.$class.' btn-xs">%s</button></td>', $linha->status_pagamento);
           printf('<td class="text-center">%s</td>', '<div class="btn-group btn-xs"><button data-toggle="dropdown" class="btn btn-xs dropdown-toggle"  data-original-title="" title="">Action<span class="caret"></span></button><ul class="dropdown-menu pull-right"><li><a href="editar/'.$linha->id_finan.'">Edit</a></li><li><a href="excluir/'.$linha->id_finan.'">Delete</a></li>' );
    
         echo '</tr>';
       endforeach;
    ?>
    
 0
Author: Iandra Bedin, 2016-08-09 21:51:43