ziminny / paginate_jason
Paginação com json , php e mysql
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:package
Requires
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-29 06:14:21 UTC
README
Paginação com ajax e jQuery
Iniciando
composer require ziminny/paginate_jason
Em sua model insira os seguintes registros
/* * @return html */ public function yourTableModel() { //instancie a classe passando como parametro a sua conexão $select = new \Ziminny\Paginate\db\AjaxTable($this->connect()); // linhas por pagina default 8 //$select->rowPerPage = 8; /** * configurações da tabela */ $table = [ /* * Post METHOD */ 'posts' => [ 'pages' => 'page', // pagina atual que se encontra 'input' => 'query' // campo de pesquisa ], /** * Tabela principal */ 'table' => 'clients', // nome da tabela do banco de dados 'orderBy' => 'name', 'where' => 'name', // where name = query 'columns' => 'id,name', // colunas do banco de dados 'personalizeFields' => [ // apelido p/ as colunas ex.: [ID] [Código] 'id' => 'Código', 'name' => 'Nome', ], /** * Caso a tabela possua fk */ 'innerJoin' => [ 'alias' => true, // default false , definir para true caso exista fk e queira usar os registros 'table' => 'address', // nome da segunda tabela 'compare' => 'id_address=id', // ON campo da tablela 1 = campo da tabela 2 'columns' => 'street,num', // campos da segunda tabela 'personalizeFields' => [ 'street' => 'Rua', 'num' => 'Número' ] ], /** * Contagem das visuaalizações */ 'viewsCount' => [ 'position' => '', // start , center , end 'text' => '' // default = Total ] ]; /** * Configuração da paginação */ $pag = [ 'paginateResponsive' => false, // se true exibe três tamanhos diferentes de acordo com a tela 'position' => 'center', // start , center , end 'previous' => '', // default << 'next' => '' // default >> ]; /** * A paginação nao é obrigatória , basta retirar o método paginate * assim como as configurações , caso nao seja passada como parâmetro * assumira as conficurações pre definidas */ $select->table($table) ->paginate($pag) ->run(); }
Se preferir crie um arquivo p/ não chamar direto sua model
// Ex:. arquivo my_page.php $datas = new MyClass(); $datas->yourTableModel() // return html
Na sua view onde os dados serão apresentados insira o seguinte código html , o input de pesquisa é opcional
<input type="text" id="search_box"> <div id="yourDiv"> </div>
E por fim o a ajax , que sera responsavel pela troca de informação
$(document).ready( function() { function load_data(page, query = "") { $.ajax( { url:"my_page.php", method:"POST", data: { page:page ,query:query // page e query POST METHOD }, success: function(response) { $("#yourDiv").html(response) // conteudo , resposta }, error: function(error) { console.log(error) } }); } // carregamento da página , começa na página 1 load_data(1); // a cada click no paginate envia a pagina que se encontra $(document).on("click",'.page-link', function(e) { var page = $(this).data('page_number'); var query = $("#search_box").val(); load_data(page,query); e.preventDefault(); }) // evento keyup $("#search_box").on('keyup', () => { load_data(1,$("#search_box").val()); }) });
A saida sera parecida com essa :