Ir ao conteúdo
  • Cadastre-se

Atualizar div sem dar refresh na pagina


Posts recomendados

Bom dia pessoal tudo bem? Estou tentando fazer meu sistema atualizar apenas a div e não toda a página. Estou usando Ajax mais não está funcionando. 

Código Ajax:

<script>
$(function(){
           
  $(document).ready(function(){            
                                      
    var atualizar= setInterval(function(){
                                                                       
     $("#chat").load("atualiza.php #chat");
                                                                           
    }, 3000);
    return false;
   });           
   });
</script>

 

Tabela a ser atualizada: 

<div class="panel-heading">
                    <span class="glyphicon glyphicon-comment"></span> Tabela
                   
                </div>
                
               
                <div class="panel-body" id="chat">
                 <?php
            include "atualiza.php";
while($escrever=mysql_fetch_array($res)){
?> 
                  <table class="table table-striped">
                   <tr>
                  <td><?php echo $escrever['nome'] ?></td>
                  <td><?php echo $escrever['message'] ?></td>
                   
                  <tr>
                  </table>
                    <?php
}
?>
                </div>

 

e por Ultimo o arquivo atualiza.php:

<?php
session_start();
$servidor = "localhost"; /*maquina a qual o banco de dados está*/
$usuario = "root"; /*usuario do banco de dados MySql*/
$senha = ""; /*senha do banco de dados MySql*/
$banco = "chat"; /*seleciona o banco a ser usado*/
$conexao = mysql_connect($servidor,$usuario,$senha);  /*Conecta no bando de dados MySql*/
mysql_select_db($banco);
$res = mysql_query ("SELECT * FROM inbox ORDER BY idinbox desc");
?>

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@rodrigofernandes1985

Olá,  eu vejo erros no seu código javascript.

Já no php, tem funções obsoletas que devem ser mudadas.

 

No seu javascript, você está chamando duas vezes a função do escopo.

Altere para:

$(document).ready(function(){                                          
    setInterval(function(e){    
      e.preventDefault();
      $("#chat").load("atualiza.php #chat");
                                                                 
    }, 3000);
   });           

A parte da tabela seria melhor incluir no php requisitado deixando o container vazio.

<div class="panel-heading">
     <span class="glyphicon glyphicon-comment"></span> Tabela               
</div>
<div class="panel-body" id="chat"></div>

PHP:

<?php
session_start();

$conexao = mysqli_connect("localhost","root","", "chat" );  /*Conecta no bando de dados MySql*/

$res = mysqli_query($conexao, "SELECT * FROM inbox ORDER BY idinbox desc");
  
echo "<table class='table table-striped'>";

while($escrever = mysqli_fetch_object($res)):
        echo"
                  <tr>
                       <td>$escrever->nome</td>
                       <td>$escrever->message</td>
                  </tr>";                 
endwhile;

echo "</table>";

Perceba que coloquei a tag inicial e final da tabela fora do laço de while. Ou seja, o que vai ser repetido ali será as  linhas do nome e da mensagem. Do jeito que está fazendo, a tabela toda está dentro do while.

 

Bom, o código não foi testado. Mas é por aí a coisa. Estude o meu código e implemente se for preciso

Link para o comentário
Compartilhar em outros sites

Fiz as alterações mais ainda não atualiza 

 

  <div class="panel-heading">
     <span class="glyphicon glyphicon-comment"></span> Tabela
 
</div>
                    
<div class="panel-body" id="chat">
          <?php
            include "atualiza.php";
            ?>        
            </div>

javascript:


 

$(document).ready(function(){                                          
    setInterval(function(e){    
      e.preventDefault();
      $("#chat").load("atualiza.php #chat");
                                                                 
    }, 3000);
   });  

Codigo php:


 

<?php
session_start();
$conexao = mysqli_connect("localhost","root","", "chat" );  /*Conecta no bando de dados MySql*/
$res = mysqli_query($conexao, "SELECT * FROM inbox ORDER BY idinbox desc");
  
echo "<table class='table table-striped'>";
while($escrever = mysqli_fetch_object($res)):
        echo"
                  <tr>
                       <td>$escrever->nome</td>
                       <td>$escrever->message</td>
                  </tr>";                 
endwhile;
echo "</table>";
      

 

Link para o comentário
Compartilhar em outros sites

  • Moderador

@rodrigofernandes1985 O primeiro erro que vejo ali é que você está incluindo via php o arquivo atualiza.php e também tentando carregar o mesmo via javascript.

Como falei o container TEM que ser vazio, porque a resposta do ajax é incluir os valores vindo do arquivo requisitado.

 

Outro possível erro é que a função load() sozinha pode não ser suficiente.

Tente usar o $.ajax() junto com done().

Link para o comentário
Compartilhar em outros sites

9 minutos atrás, DiF disse:

@rodrigofernandes1985 O primeiro erro que vejo ali é que você está incluindo via php o arquivo atualiza.php e também tentando carregar o mesmo via javascript.

Como falei o container TEM que ser vazio, porque a resposta do ajax é incluir os valores vindo do arquivo requisitado.

 

Outro possível erro é que a função load() sozinha pode não ser suficiente.

Tente usar o $.ajax() junto com done().

 

Como coloco ajax aqui dentro?

 

$(document).ready(function(){                                          
    setInterval(function(e){    
      e.preventDefault();
      $("#chat").load("atualiza.php #chat");
                                                                 
    }, 3000);
   });          

 

adicionado 8 minutos depois
7 minutos atrás, rodrigofernandes1985 disse:

 

Como coloco ajax aqui dentro?

 


$(document).ready(function(){                                          
    setInterval(function(e){    
      e.preventDefault();
      $("#chat").load("atualiza.php #chat");
                                                                 
    }, 3000);
   });          

 

Desculpa cara é que não conheço muito bem, não vou fazer de novo.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...