Atualização automática assíncrona com AJAX

[ads2]
Olá a todos os geeks, no post de hoje, vamos fazer uma lista com atualização automática e assíncrona com AJAX, você pode usar esta lista para um portal de notícias por exemplo, ou para diversos outros projetos.
Para isso precisamos de um arquivo .html e outro .php, no primeiro faremos o layout e chamaremos o AJAX, no segundo faremos a conexão com o banco de dados, mas para começar crie uma tabela chamada lista no seu banco de dados com este script:

CREATE TABLE IF NOT EXISTS `lista` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`titulo` text NOT NULL,
`texto` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  
DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Depois vamos ao arquivo index.html onde devemos criar uma div com o nome lista dentro do body, e deixe-a vazia:

No cabeçalho do arquivo inclua a biblioteca jQuery, que deve estar na mesma pasta do projeto e crie o código que realiza o AJAX:


		

Veja que determinei o valor de 60000, para o método setTimeout, valor que é equivalente a 60 segundos.
Dando continuidade faremos agora o arquivo lista.php, que é usado para conexão e consulta ao banco de dados, para isso é preciso o usuário e senha do banco, no exemplo usamos o servidor local: localhost, com usuário padrão: root, e senha em branco.


		

Pronto, agora para testar cadastre itens no banco de dados estando com a página aberta.
[ads1]

Jayr Alencar

Doutorando em Ciências da Computação no Centro de Informática da Universidade Federal do Pernambuco (CIn - UFPE); Mestre pela mesma instituição; Formado em Análise e Desenvolvimento de Sistemas; Católico; Fã de O Senhor do Anéis.

17 thoughts on “Atualização automática assíncrona com AJAX

  1. Amigo,Boa noite,

    Estou aprendendo php e Ajax, achei o seu post interessante.
    Você poderia pode gentileza disponibilizar o código na integra para eu poder estudar?

    Desde já fico muito agradecido.

    Edmilson

      1. Muito obrigado pela sua contribuição. Valeu mesmo… Precisamos de gente assim como vc. !! Vc faz freelances de paginas?

  2. Amigo,

    Obrigado pela ajuda, me diz uma coisa… eu usei esse seu exemplo para mostrar dinamicamente uma informação do banco, porem quando é para mostrar caracteres ja salvo em MYSQL com acentuação tipo ç, á, é ó,â, ã, aparece tudo bagunçado depois, sabe me disse se tem um jeito de resolver isso?

    Agradeço novamente pela ajuda.

    1. Cara, isso geralmente acontece quando você insere os dados direto no banco de dados e sua base de dados está com charset diferente de latin1.

      Você pode resolver isso criando um ambiente onde você faça o insert no banco de dados, exemplo um painel pra postagem de notícias….

      e para alterar o charset da base de dados faça

      ALTER DATABASE NOME_DO_SEU_BANCO CHARSET=LATIN1

      Para isso acesse o phpMyAdmin do seu site, ou outro SGBD que você prefere vai em SQL e digita o comando acima… Blz?

      Me dá o retorno se deu certo, aguardo!

  3. Meu amigo, boa noite.
    Este é material simples e direto, que resolve muitos problemas como sabes, de atualização automática. Obrigado pelo trabalho compartilhado!!

    Neste momento estou batendo cabeça para transferir as informações ao html em variáveis e não em texto através do “echo” no PHP… Por exemplo: gostaria de poder posicionar cada field obtido na query e tomar decisões através destas variáveis no arquivo index.html.

    Teria uma dica,

    abc,
    obrigado!!

    1. Boa noite Anderson, você pode fazer da seguinte forma, criar uma javaScript que trate o retorno,por exemplo:

      function trataAjax(variavel1, varivel2){
       //seu tratamento
      }
      

      Ai no php você faz assim:

      echo $variavel1.",".$variavel2;
      

      E no Ajax assim:

      success: function (textStatus){
      trataAjax(textStatus);
      }
      

      Ou então você pode dar o echo no PHP dividindo as variáveis por pipeline | e depois no JavaScript usar o método Split:

      success: function (textStatus){
      texto= textStatus.split("|");
      }
      

      Ai vc usa texto[0] pra mostra o valor da primeira variavel e assim sucessivamente.

  4. Olá, passei para parabenizá-lo pelo seu post, não achava nada parecido em lugar algum. Achei aqui e consegui implementar no meu projeto! Obrigada (:

  5. Obrigado, funcionou certinho aqui pro meu sistema de chat, só tive que fazer algumas alterações… ficou bem legal 🙂
    Só uma dúvida: Como eu poderia fazer no caso para ele logo após carregar ele alterar as mensagens para lido, somente a que o usuário receber. Eu tentei aqui mas no caso todas estavam ficando como lida independente de comparações como if($usuarioAtual (!= / ==) $id_para) etc…

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Deprecated: Creation of dynamic property Daisy_Blog_Google_Local::$files is deprecated in /home2/clube692/public_html/wp-content/themes/daisy-blog/inc/blocks/font-family/inc/class-fonts-google-local.php on line 77

Deprecated: Creation of dynamic property Daisy_Blog_Google_Local::$files is deprecated in /home2/clube692/public_html/wp-content/themes/daisy-blog/inc/blocks/font-family/inc/class-fonts-google-local.php on line 77