Arquivo da tag: listagem feed

Paginação com jQuery

Vou tentar explicar como fazer uma paginação com jQuery, ou seja, sem precisar dar o tal do refresh no navegador. Vamos usar um pouco de um outro tutorial que mostrei aqui, que é sobre conectar-se ao banco usando PHP. O resto é um pouco de CSS, algumas consultas ao banco com PHP e nada mais.

Vamos fazer um exemplo de uma listagem de feed de noticias, ou seja, listar todas as noticias cadastrada no banco.

Criando a tabela:

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

Vamos lá ..

Primeiro vamos criar o arquivo index.php

<!DOCTYPE HTML>
<?php
// Contem as informações para se conectar ao banco
include ('conectar_banco.php');
 
// Chamar a classe para conectar o banco
$sql = new conectar_banco();
// Conecta-se ao banco de dados usando os valores padrões
$sql->conecta();
?>
<html>
<head>
<meta charset="utf-8">
 
<title>Paginação com jQuery</title>
<link rel="stylesheet" type="text/css" media="screen" href="css.css">
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="paginacao.js"></script>
</head>
 
<body>
<?php
$por_pagina = 7; // NUMERO DE VEZES QUE VAI APARECER ANTES DE CRIAR OUTRA PAGINA
 
// Define e executa uma query SQL
$busca = "SELECT * FROM noticias ";
$sql->consulta($busca);
 
$contar = $sql->contar();
 
$paginas = ceil($contar/$por_pagina)
?>
<div id="conteudo">
    <div>
        <label><img src="loader.gif" alt=""></label>
    </div>
 
    <div id="resultado"></div>
</div>
 
<div id="botao" align="center">
    <ul>
     <?php
      // Mostrar os links da paginação.
      for($i=1; $i<=$paginas; $i++)
      {
        echo '<li id="'.$i.'">'.$i.'</li>';
      }
     ?>
    </ul>
</div>
</body>
</html>

Agora precisamos do arquivo paginacao.js para fazer a mágica acontecer

$(document).ready(function(){
    function showLoader(){
        $('.fundo_pag').fadeIn(200);
    }
    function hideLoader(){
        $('.fundo_pag').fadeOut(200);
    };
 
    $("#botao li").click(function(){
        showLoader();
 
        $("#botao li").css({'background-color' : ''});
        $(this).css({'background-color' : '#D8543A'});
 
        $("#resultado").load("informacao-paginacao.php?page=" + this.id, hideLoader);
 
        return false;
    });
 
    $("#1").css({'background-color' : '#D8543A'});
    showLoader();
    $("#resultado").load("informacao-paginacao.php?page=1", hideLoader);
});

E para que seja feita novas consultas quando solicitado o arquivo paginacao.js, vamos precisar fazer uma nova consulta, com o arquivo informacao-paginacao.php

<?php
include ('conectar_banco.php');
 
// Chamar a classe para conectar o banco
$sql = new conectar_banco();
// Conecta-se ao banco de dados usando os valores padrões
$sql->conecta();
 
// Quantidade por paginda
$por_pagina = 3;
 
// Pegar qual é a numeração da pagina atual
$pagina = $_REQUEST['page'];
 
$inicio = ($pagina-1)*$por_pagina;
$buscar = "SELECT * FROM noticias ORDER BY id LIMIT $inicio,$por_pagina";
$sql->consulta($buscar);
 
while ($paginacao = $sql->resultado())
{
    ?>   <div><?php echo $paginacao['noticias'];?></div><?php
}
?>

E para deixar tudo muito bonito, vamos usar um css.

*{
    margin:0px;
    padding:0px;
    font-family:Tahoma, Geneva, sans-serif
    font-size:0.75em;
}
#conteudo {
    min-height:455px;
    padding:12px;
    margin:0 auto;
    text-decoration: none;
    width: 700px;
}
 
#conteudo .separacao{
    color:#000066;
    font-family:Arial, Helvetica, sans-serif;
    font-size:14px;
    padding:5px 5px 12px 5px;
    border-bottom:solid #D8543A 3px;
    text-align:justify;
    margin-bottom:11px;
}
 
.fundo_pag{
    display: none;
    font-size: 13px;
    font-weight: bold;
    height:160px;
    position: absolute;
    padding-top:140px;
    text-align: center;
    opacity:0.5;filter: alpha(opacity=50) ;
    text-decoration: none;
    width: 700px;
}
 
.fundo_pag{
    color:#FFFFFF;
    text-shadow: #fff 0px 0px 20px;
}
 
.fundo_pag label{
    border:solid #66FF00 1px;
}
 
#botao ul{ width: 700px; padding:0px; margin:8px;}
 
#botao ul li {
    -moz-border-radius: 3px 3px 3px 3px;
    background: none repeat scroll 0 0 #000000;
    color: #FFFFFF;
    float: left;
    font-family: helvetica,arial,sans-serif;
    font-size: 13px;
    font-weight: 700;
    margin: 0 2px 0px;
    padding: 10px 10px;
    text-align: center;
    text-decoration: none;
    text-shadow: none;
    list-style-type:none;
    width: 30px;cursor:pointer;
}
 
#botao ul li:hover{background:#D8543A;}
li:hover{ color: #CC0000; cursor: pointer; }

Bom, estou pegando o jeito com esse negocio de tutorial, mas com o tempo vou melhorando, se você quiser fazer o download desse exemplo é só clicar aqui

Fonte: Renan M. Pimentel/Algoritmizando