Jump to content
Cleudiney T Brandão

Criar DIV que atualize coluna <td> dentro do while

Recommended Posts

Saudações desenvolvedores,

 

Estou precisando da ajuda de vocês em uma questão:

Tenho uma pagina onde dentro de um laço while gero a consulta ao banco, mostrando um resultado por linha, sendo que em uma das colunas preciso que seja atualizada a cada 10 minutos apenas a coluna. 

Ja tentei com Ajax, mas aí atualiza apenas o primeiro resultado do while. 

Não posso dar refresh em toda a pagina pois tenho um MODAL que as vezes é chamado e se der refresh em toda a página perco as informações do modal. 

Alguém me daria uma dica de como fazer?

a parte do código a qual me refiro é esta aqui:

<!-- Inicio Modal -->
			<div class="modal fade" id="myModalcad" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
			
			<div class="modal-dialog" style="width: 1500px; margin: 0 auto; height: 100%;" role="document">
					<!-- botao Cadastrar -->
					<div class="modal-content">
						<div class="modal-header">
							<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
							<h4 class="modal-title text-center" id="myModalLabel">Cadastrar Receita</h4>
						</div>
							
						<!-- botao Cadastrar -->
						<div class="modal-body " >
							<form method="POST" action="processa.php" enctype="multipart/form-data">
								<div class="form-group">
									<label for="recipient-name" class="control-label">Nome:</label>
									<input name="nome" type="text" class="form-control">
								
								</div>
								<!--nao e do alterar -->
								<div class="form-group">
									<label for="message-text" class="control-label">ConsultaXXXXX:</label>
									<textarea  style="width:100%;height:630px" name="detalhes" class="form-control"></textarea>
								</div>
								
								<div class="modal-footer">
									<button type="submit" class="btn btn-success">Cadastrar</button>
								</div>
							</form>
						</div>
						<!-- botao Cadastrar -->
					</div>
				</div>
			</div>
			<!-- Fim Modal -->
			<!-- botao Cadastrar -->
			<? while($colunas_prontuario = mysqli_fetch_assoc($preenche))
							{ 
						$Descricao=['Descricao'];
			?>	
				<div id="lista">		
			<!-- TABELA -->
			<div class="row">
				<div class="col-lg-12">
					<table class="table table-striped" >
						
						<thead>
							<tr>
								<th>Hora</th>
								<th>Dra</th>
								<th>CodPac</th>								
								<th>Paciente</th>
								<th>Convenio</th>
								<th>Contato</th>	
								<th>Alergico</th>									
								<th>Ação</th>
							</tr>
						</thead>
						<tbody>
							
							<?php 
							
							
							while($rows_cursos = mysqli_fetch_assoc($resultado_cursos))
							
							{ 
						
							?>
								<tr>
									<td><?php echo $rows_cursos['hora'];?></td>
									<td><?php echo $rows_cursos['nomden'];?></td>
									<td><?php echo $rows_cursos['codpac']; ?></td>
									<td><?php echo $rows_cursos['nompac'];?></td>
									<td><?php echo $rows_cursos['nomefantasia'];?></td>										
									<td><?php echo $rows_cursos['celpac'];?></td>	
									<td><?php echo $rows_cursos['alergias'];?></td>
									<td><?php echo $rows_cursos['status_a'];?></td>

 

Share this post


Link to post
Share on other sites

Olá Cleudiney, minha primeira contribuição aqui no fórum, vamos lá kk espero ajudar.

 

Depois que sua página é renderizada você não tem mais sua estrutura WHILE e sim a tabela literal. Sendo assim você terá que atualizar o DOM de sua página de alguma forma. Como você já chegou a usar AJAX, presumo que seja mais fácil abordar o assunto por meio dele.

 

Digamos que você faça um requisição AJAX e retorne um JSON com todos os dados que devem ser atualizados (?): Se este for o cenário você pode iterar via Javascript cada linha de sua tabela, atingir a coluna em questão trocando obviamente seu conteúdo.

Desculpe se não entendi a questão, forneça mais informações. Mas acredito que para seu problema você encontrará o caminho em soluções front-end e não no PHP em sí.

Share this post


Link to post
Share on other sites

Oi @Paullo_h Obrigado por tentar ajudar. 
Pois eh, o grande problema e eu estar mostrando o conteúdo do WHILE em um Modal quando clico em editar. Caso eu use a lógica de refresh o while se refaz mas desfaz o Modal, o que eu preciso é bloquear a atualização caso modal esteja sendo exibido, e quando sair do modal a pagina dê o refresh. 
Atualmente já funciona se eu clico o salvar do modal, mas acontece frequente de não se salvar o modal, aí sem refresh não atualiza. 
Então resumindo, se coloco o refresh apago o modal. 
Posso não colocar o refresh mas só atualiza ao entrar no modal e salvar qualquer registro. 

Colocando o refresh e a tela do modal aberta por tempo maior que o refresh perco o que está digitado no modal.

Verdadeiramente preciso atualizar apenas uma coluna que é a que mostra que a pessoa já chegou, a coluna "status_a".

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 HigorCrds
      Bom, o que eu consegui até agora foi fazer com que, ao usuário clicar em algum dos botões de paginação (1, 2, 3...) o PHP guarde uma SESSION com o número da página correspondente.
      Segue o código:
       
      <!-- BOTÃO COM O NÚMERO DA PÁGINA --> <button onclick="mudaVar(<?php echo $i; ?>);"> <?php echo $i; ?> </button> <!-- FUNÇÃO PARA GUARDAR SESSION PG --> function mudaVar(valor) { $.ajax({ url:'sessions.php?valor='+valor }); } // GUARDA SESSION PG if(isset($_GET['valor'])){ $_SESSION['pg'] = $_GET['valor']; } Até aí tudo bem, só que o problema é que a SESSION não é alterada naquele momento, só quando eu atualizo a página.
      Como corrigir isso?
    • By FabianoSouza
      Tenho a function A, que captura valores e os transfere para a function B (que é um AJAX).
       
      Preciso que a function B passe seu resultado para a function A. Creio que precise de um callback. Mas não estou sabendo com estruturar isso.
      Vejam como estão os códigos:
       
      FUNCTION A
      function upDateRating(e) { var $alvoClick = getTarget(e) , $ul = $alvoClick.parentNode , $idItem = $alvoClick.parentNode.parentNode.parentNode.parentNode.id , $valRating = $alvoClick.value var $array = [ { idItem:$idItem , favorito: 1 , rating: $valRating } ] upDateCard($array) }  
      FUNCTION B (AJAX)
      function upDateCard(e) { var $array = e , $dados = JSON.stringify($array); function ajax() { var $obj = createXMLHTTP(); $obj.open('post', 'minhaPagina', true); $obj.setRequestHeader('content-type', 'application/x-www-form-urlencoded'); $obj.onreadystatechange=function(){ if ($obj.readyState == 4 && $obj.status == 200){ try { var $strResp = JSON.parse($obj.responseText); } catch(e) { alert('Erro. Dados em formato inválido.') return false; } return $strResp //PRECISO PASSAR ESSE VALOR DE VOLTA PARA A FUNCTION A } } $obj.send(encodeURI('str='+$dados)) } ajax() }  
       
    • By joao.felipe
      Pessoal, boa noite,
       
      estou tentando fazer um checkbox colorir multiplas celulas de uma tabela. Ao selecionar o checkbox e clicar no onclick botao(filtrar) ou somente selecionando o checkbox, eu preciso colorir a celula de verde através de alguma propriedade. Ex: <td ID="A1" color"green" ></td> da  
       
      <!DOCTYPE html>
      <html>
      <body>
      <script>
        function obterMarcados() 
        {
          var numeros = 0;
          var listaMarcados = document.getElementsByName("checkbox1");
          
          if (listaMarcados.length > 0)
          {
            for (loop = 0; loop < listaMarcados.length; loop++) 
            {   
              let item = listaMarcados[loop];
              console.log(item.checked)
              if (item.type == "checkbox" && item.checked) 
              {
                numeros++;
                alert(item.value);
                alert(listaMarcados.length);
              }
            } 
            if (numeros == 0)
            {
              alert("Nenhum CheckBox foi Marcado");
            }
            
          }
          else
          {
            alert("Nao existe nenhum CheckBox com esse nome(name)");
          }  
        }
      </script>
       
      <form>
        <table width="" border="1" cellspacing="10" cellpadding="4">
       
      <tr align="center"> <td>--</td> <td> -- <br></td> <td>A</td> <td>B</td> <td>C</td> <td>D</td> <td>E</td> <td>F</td> <td>G</td> <td>H</td> <td>I</td> <td>J</td> <td>K</td> <td>L</td> <td>M</td> <td>N</td> <td>O</td> <td>P</td> <td>Q</td> <td>R</td> <td>S</td> <td>T</td> <td>U</td> <td>V</td> <td>X</td> </tr>
       
      <tr align="center"> <td>--</td> <td> <input type="button" name="btn" value="Verificar Marcados" onclick="obterMarcados()">                                         <br></td> <td COLSPAN="12" align="center">RAIZES 8</td> <td COLSPAN="4" align="center">RAIZES 7</td> <td COLSPAN="2" align="center">RAIZES 6</td> <td td COLSPAN="3" align="center">VEREDAS 2</td> <td>CARANDÁ</td> <td>PALMAS</td>  </tr>  
       
      <tr align="center"> <td>--</td> <td> --                                                                                                                            <br></td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>7</td> <td>8</td> <td>9</td> <td>10</td> <td>11</td> <td>12</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>1</td> <td>2</td> <td>1</td> <td>2</td> <td>3</td> <td>1</td> <td>1</td> </tr>  
       
        <tr align="center"> <td>01</td> <td align="left"> <input type="checkbox" id = "3DS Max"            name="checkbox1" value="3DS Max"           > 3DS Max            <br></td> <td bgcolor="green" id="A1">A1 </td> <td id="B1">B1</td> <td>C1</td> <td>D1</td> <td>E1</td> <td>F1</td> <td>G1</td> <td>H1</td> <td>I1</td> <td>J1</td> <td>K1</td> <td>L1</td> <td>M1</td> <td>N1</td> <td>O1</td> <td>P1</td> <td>Q1</td> <td>R1</td> <td>S1</td> <td>T1</td> <td>U1</td> <td>V1</td> <td>X1</td> </tr>  
       
        <tr align="center"> <td>02</td> <td align="left"> <input type="checkbox" id = "Adobe + Audacity"   name="checkbox1" value="Adobe + Audacity"  > Adobe + Audacity   <br></td> <td bgcolor="white" id="A2">A2 </td> <td>B2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr>  
       
        <tr align="center"> <td>03</td> <td align="left"> <input type="checkbox" id = "Anaconda Python 5"  name="checkbox1" value="Anaconda Python 5" > Anaconda Python 5  <br></td> <td bgcolor="white" id="A3">A3 </td> <td>B3</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td>6</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr>  
       
            </table>
          </form>
        </body>
      </html>
    • By sronze
      Ola estou com um problema em JavaScript
      O objetivo e digitar um ID/Nome em um input e ele buscar em um arquivo XML fazendo autocomplete e preencher outros dois inputs com os atributos associado ao ID/Nome da base XML.
       
      GIF de exemplo, obs(exatamente oque pretendo fazer): http://blog-media.chromaticsites.com.s3.amazonaws.com/google-places-autocomplete-3/autocomplete-error.gif
       
      Link do XML: https://www.w3schools.com/js/cd_catalog.xm
       
      Segue meu código:
      <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> </head> Nome:<input id="idInput"> UF:<input id="idInput02"> Ano:<input id="idInput03"> <script> var ValorXML1 = []; $(document).on('keyup' , '#idInput' ,function(){ var keyvalue = $("#idInput").val(); var xhttp; xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { ValorXML1 = []; CaregarXML(this , keyvalue); } }; xhttp.open("GET", "https://www.w3schools.com/js/cd_catalog.xml", true); xhttp.send(); }); function CaregarXML(xml , key) { var x, i, xmlDoc , key; xmlDoc = xml.responseXML; x = xmlDoc.getElementsByTagName("TITLE"); var cont = 0; for (i = 0; i < x.length; i++) { var valor = x[i].childNodes[0].nodeValue.trim(); var pattern = valor.substring(0 , key.length); if(key.toUpperCase() == pattern.toUpperCase() && cont < 5){ ValorXML1.push(valor); cont++; } } $("#idInput").autocomplete({ source: ValorXML1 }); } $( function() { $( "#idInput" ).autocomplete({ source:ValorXML1 }); }); </script>  
    • By FabricioVale
      Boa tarde pessoal. Quem pode me salvar.
       
      Como eu exibo uma foto nesse linha abaixo em tempo real no meu componente repeater c#
       
      <asp:Image ID="Image1" height="50" width="50" runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem,"Arqfigura")%>' />
       
      OBS: Eu consigo efetuar o download da foto e até abrir, só não consigo exibir a figura em tempo real na própria pagina. Isso é possivel?
      Ou melhor como exibir um longblob em um Repeater?
       
      Segue o código do Banco de dados
       
      DROP TABLE IF EXISTS `figuraos`;
      CREATE TABLE  `painelcontrol`.`figuraos` (
        `Id` int(10) unsigned NOT NULL AUTO_INCREMENT,
        `Nomefig` varchar(300) NOT NULL,
        `Arqfigura` longblob NOT NULL, 
        `IdOs` int(10) unsigned NOT NULL,
        `IdfuncOS` int(10) unsigned NOT NULL,
        PRIMARY KEY (`Id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
       
       
       
      Segue o código da pagina ASPX
       
      <!DOCTYPE html>
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head runat="server">
          <title></title>
          <style type="text/css">
      #Linhagrossa
             {
                 border-top-style: solid; 
                 border-width: 3px; 
                 border-color:Black;
                 width: 650px;
             }
             #Linhafina
             {
                 border-top-style: solid; 
                 border-width: 1px; 
                 border-color:Black;
                 width: 650px;
             }
      .footable{border-spacing:0;width:100%;border:solid #ccc 1px;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;font-family:'trebuchet MS','Lucida sans',Arial;font-size:14px;color:#444}
      .footable>thead>tr>th:first-child,.footable>thead>tr>td:first-child{-moz-border-radius:6px 0 0;-webkit-border-radius:6px 0 0;border-radius:6px 0 0}
      .footable>thead>tr>th,.footable>thead>tr>td{background-color:#dce9f9;background-image:-webkit-gradient(linear,left top,left bottom,from(#ebf3fc),to(#dce9f9));background-image:-webkit-linear-gradient(top,#ebf3fc,#dce9f9);background-image:-moz-linear-gradient(top,#ebf3fc,#dce9f9);background-image:-ms-linear-gradient(top,#ebf3fc,#dce9f9);background-image:-o-linear-gradient(top,#ebf3fc,#dce9f9);background-image:linear-gradient(to bottom,#ebf3fc,#dce9f9);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;-moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset;box-shadow:0 1px 0 rgba(255,255,255,.8) inset;border-top:0;text-shadow:0 1px 0 rgba(255,255,255,.5)}
      .footable>tbody>tr>td,
      .footable>thead>tr>th{border-left:1px solid #ccc;border-top:1px solid #ccc;padding:10px;text-align:left}
      .footable>thead>tr>th,
      .footable>thead>tr>td{position:relative}
          </style>
      </head>
      <body>
          <form id="form1" runat="server">
          <div>
              <asp:Label ID="lbldados1" runat="server" ForeColor="Black" Font-Size="12pt" Font-Names="Calibri"></asp:Label>
                  <br />
              <asp:Label ID="lbldados2" runat="server" ForeColor="Black" Font-Size="12pt" Font-Names="Calibri"></asp:Label>
                  <br />
              <asp:Label ID="lbldados3" runat="server" ForeColor="Black" Font-Size="12pt" Font-Names="Calibri"></asp:Label>
                  <br />
                        <br />                          
          <asp:Repeater ID="rptimg" runat="server" 
                       onitemcommand="rptEmployees_itemCommand" Visible="False">
              <HeaderTemplate>
                  <table id="tblEmployees" class="footable" border="0" cellpadding="0" 
                      cellspacing="0" style="font-family: Calibri; font-size: 14px">
                      <thead>
                          <tr>
                                                                          <th style="display: table-cell;" data-hide="phone" >
                                                                              Descrição
                                                                          </th>
                                                                          <th data-class="expand" scope="col">
                                                                              Download
                                                                          </th>
                                                                          <th data-class="expand" scope="col">
                                                                              Exibir
                                                                          </th>
                                                                          
                                                                         
                          </tr>
                      </thead>
              </HeaderTemplate>
              <ItemTemplate>
                  <tbody>
                      <tr>
                                                                      <td>
                                                                      <asp:Label ID="lblNomefig" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Nomefig")%>'></asp:Label>
                                                                      </td>
                                                                      <td>
                                                                        <asp:ImageButton ID="btndownload" Height="32px" Width="32px"  runat="server" CausesValidation="False" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Id")%>' CommandName="DownloadImg" ImageUrl="~/img/btnimg.png" Text="Baixar" Visible="true" />
                                                                      </td>
                                                                      <td>
                                                                        <asp:Image ID="Image1" height="50" width="50" runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem,"Arqfigura")%>' />
                                                                      </td>
                      </tr>
                  </tbody>
              </ItemTemplate>
              <FooterTemplate>
                  </table>
              </FooterTemplate>
          </asp:Repeater>
           
          </div>
              <p>
                  <asp:Label ID="lblMsg" runat="server" Font-Names="Calibri" Font-Size="12pt"></asp:Label>
              </p>
          </form>
      </body>
      </html>
×

Important Information

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