Jump to content
proflupin

Collapse Bootstrap dentro de While

Recommended Posts

criei uma página que busca alguns dados no BD e retornar em forma de collapse. Como existe um WHILE executando o collapse, ele sempre o executa com o mesmo ID, ou seja, se eu tiver 20 collapse, todos vão ser abertos ao clicar no primeiro.

A dúvida é, como eu posso criar um novo ID para o collapse a cada loop do While?

Código:

 

<?php while($result_inners = mysqli_fetch_object($result_inner)){ ?>
        <div class="card-footer ">
            <a class="text-muted" data-toggle="collapse" href="#collapse1" role="button" aria-expanded="false" aria-controls="collapseExample">
            <i class="fas fa-comment-alt"></i> <?php if(!empty($result_inners->nome_completo)) echo $result_inners->nome_completo . " respondeu..."; else echo 				"Aguardando resposta do técnico." ?>  
            </a> 
            <div class="collapse " id="collapse1">
                <div class="bg-white mt-2 p-2">                    
                    <?php echo nl2br($result_inners->mensagem) ?>
                </div>
                <span style="color: #6c757d; float: right;"><?php echo date('d/m/Y H:i', strtotime($result_inners->data_hora)) ?></span>
            </div>                
        </div>
<?php } ?>

 

Share this post


Link to post
Share on other sites

Caso alguém venha no futuro procurando a mesma solução, segue:

 

<?php 
	$cont = 0
	while($result_inners = mysqli_fetch_object($result_inner)){ ?>
        <div class="card-footer ">
            <a class="text-muted" data-toggle="collapse" href="#collapse1<?php echo $cont ?>" role="button" aria-expanded="false" aria-controls="collapseExample">
            <i class="fas fa-comment-alt"></i> <?php if(!empty($result_inners->nome_completo)) echo $result_inners->nome_completo . " respondeu..."; else echo 				"Aguardando resposta do técnico." ?>  
            </a> 
            <div class="collapse " id="collapse1<?php echo $cont ?>">
                <div class="bg-white mt-2 p-2">                    
                    <?php echo nl2br($result_inners->mensagem) ?>
                </div>
                <span style="color: #6c757d; float: right;"><?php echo date('d/m/Y H:i', strtotime($result_inners->data_hora)) ?></span>
            </div>                
        </div>
	$cont ++
<?php } ?>

Criei a variável $cont e inseri a mesma nos ID's do Collapse.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By granderodeo
      Estou tentando pegar dados de duas tabelas logo no inicio da sessão quando o usuário realiza o login, quando utilizo o 
      SELECT * FROM usuarios, orders WHERE email = '$login' and senha= '$senha' Consigo realizar o login tranquilamente, até ai de boa, mais quando modifico o código para
       
      $comando="SELECT * FROM usuarios INNER JOIN orders ON usuarios.id_usuario = orders.id_usuario WHERE email.usuarios='$login' and senha.usuarios='$senha'"; Ele só me deixa fazer login se o usuário já tiver algum orders (pedido). O que estou tentando fazer é assim que o usuário loga, mostre também os pedidos que ele já fez etc, que são dados que estão em outra tabela. Alguém consegue ver meu erro?
    • By Fernando Rafael
      Estou tendo problemas com a leitura de porta serial com PHP, consigo facilmente escrever na mesma, mas sempre que no comando de abertura da porta eu coloco que haverá permissão de leitura o PHP trava e fica carregando infinitamente, e a porta fica bloqueada e só libera quando reiniciado o computador.
       
      Segue o cod:
      exec('MODE COM1:9600,n,8,1'); //seta configuração na porta COM $fp=fopen("COM1","r+b"); if(!$fp) {     echo("Erro ao abrir a porta com1");     exit; } else {         echo("COM1 aberta <br>"); } fwrite($fp,Chr(5));  //escrevendo valor na porta sleep(1); //pausa para retorno dos dados echo (fgets($fp)); fclose($fp); já tentei  colocar:
      fopen("COM1", "r+b");
      fopen("COM1", "r+t");
      fopen("COM1", "r");
      fopen("COM1", "w+");
      fopen("COM1", "r+");
       
      para escrever consigo normal, com o fopen("COM1", "w");.  mas já para ler.....
       
      Notei que na internet tem muito sobre esse problema, inclusive falaram em permissões de usuário, sendo que nos casos em que conseguiram, estavam usando o Linux.
      Eu estou usando o W7 e W10 com PHP 5.2, se for o caso de permissões, como resolvo isso? preciso configurar mais alguma coisa no php.ini?
       
      Também já tentei usar uma classe: phpSerial
       
      Mas retorna o seguinte erro:
      Warning: Reading serial port is not implemented for Windows in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\balanca\php_serial.class.php on line 503
       
       
    • By rogerblower
      Pessoal tenho a seguinte tabela
      id | id_etapa | id_evento | posicao | nome | pontos
      1  |  1             |        2         |   1           | joao      |  10
      2  |  1             |        2         |   2           | pedro    |  9
      3  |  1             |        2         |   3           | maria    |  8
      4  |  1             |       2          |   4           | jose       |  7
      5  |  2             |      2          |   3           | joao       |  8
      6  |  2             |  2              |   1           | pedro    | 10
      7  |  2             |   2             |  2            | maria    |  9
      8  |  2             |  2              |   4          | jose        |  7
       
      O resultado da consulta pretendido é este
      Pos  |  nome |   pontos
      1      |  pedro   | 19
      2      |   joao   | 18
      3      |  maria  |  17
      4      |  jose  |  14
       
      Com esta consulta não ordenando a coluna posicao como esperado, ela repete a posicao e não faz a soma, ex:
       1     joao     10
       1     pedro     10
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome, posicao ORDER BY pontos DESC posicao ASC"); Com esta outra consulta a soma esta correta o agrupamento nome esta correto, não se repetem, mas a coluna posicao fica fora de ordem;
       
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome ORDER BY pontos DESC posicao ASC"); Não estou conseguindo acertar a consulta, alguém me ajuda?
    • By rjlfurtado
      Segue abaixo o exemplo de como seria feito em SQL:
      CREATE TABLE tabela ( campo1 DOUBLE, campo2 DOUBLE, divisao DOUBLE AS (campo1/campo2) ); Agora eu preciso criar uma migração no Laravel 6, segue exemplo abaixo:
      $table->integer('qtd_saida'); $table->decimal('valor_uni', 8, 2); $table->double('valor_total')->as(qtd_saida * valor_uni);  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.