Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

adson

Problema - Paginação + ajax + php + campo de busca

Recommended Posts

Ola!

 

Estou criando uma paginação + ajax + php . No banco de dados que trabalhei coloquei vários produtos que começam com a letra w para conseguir buscar eles com uma busca simples.  Consegui fazer com que ele fizesse a busca e a paginação. O problema é quando clico na paginação após a busca. Ele sempre volta para o inicio. Alguém me ajuda 

 

Arquivo Index.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
        <link rel="stylesheet" href="stylesheet.css">
      
    <script src="jquery.min.js"></script>

</head>

  <body>  
           <br /><br />  
           <div class="container">  
                <h3 align="center">Make Pagination using Jquery, PHP, Ajax and MySQL</h3><br />  
                  
                <div class="table-responsive" id="pagination_data">  
                </div>  
           </div>  
      </body>
</html>

    <script type="text/javascript">

      
  $(document).ready(function(){

            load_data();  
      function load_data(page)  
      {  
           $.ajax({  
                url:"processa.php",  
                method:"POST",  
                data:{page:page},  
                success:function(data){  
                     $('#pagination_data').html(data);  
                    
                }  
           })  
      }  
      $(document).on('click', '.pagination_link', function(){  
           var page = $(this).attr("id");
           load_data(page);
            
      });  
 });  

 

 

##################################

 

Arquivo processa.php

 

<?php     
   include('conecta.php');

           $campo  = (isset($_POST['campo'])) ? $_POST['campo'] : '';

    $record_per_page = 2;  
 $page = '';  
 $output = '';  
 if(isset($_POST["page"]))  
 {  
      $page = $_POST["page"];  
 }  
 else  
 {  
      $page = 1;  
 }  
 $start_from = ($page - 1)*$record_per_page;  
 $sql = "SELECT * FROM produtos WHERE produto LIKE :nome ORDER BY id DESC LIMIT $start_from, $record_per_page";  
 $stm = $db_con->prepare($sql);
  $stm->bindValue(':nome', $campo.'%');

    $stm->execute();
    $clientes = $stm->fetchAll(PDO::FETCH_OBJ);
   
   

        
        
    
        
        
        

       ?>
        <form id="formpesquisaum" >
                Buscar por:
                <label for="select"></label>
                <select name="campo" id="campo">
                <option></option>
                  <option>w</option>
                  <option>o</option>
                </select>
                <button type="submit" class="btn btn-primary">Pesquisar</button>
              </form>
              
            <table>
                <thead>
                <tr>
                    <td>Id</td>
                    <td>Produtos</td>
                  
                </tr>
                </thead>

                <tbody>


                       <?php
            foreach($clientes as $rows_cursos): ?>
                    <tr>
                      <td><?=$rows_cursos->id?></td>
                      <td><?=$rows_cursos->produto?></td>
                      
                    </tr>
                    <?php  endforeach; ?>

               
                </tbody>
            </table>
            
            <?php
            $page_query = "SELECT * FROM produtos WHERE produto LIKE :nome ORDER BY id DESC";  
 $page_result = $db_con->prepare($page_query);
   $page_result->bindValue(':nome', $campo.'%');
  $page_result ->execute();
 
 $total_records = $page_result->rowCount();
 $total_pages = ceil($total_records/$record_per_page);  
 for($i=1; $i<=$total_pages; $i++)  
 {  
      $output .= "<span class='pagination_link' style='cursor:pointer; padding:6px; border:1px solid #ccc;' id='".$i."'>".$i."</span>";  
 }  
 $output .= '</div><br /><br />';  
 echo $output;  
 ?>  
            
            <script type="text/javascript">

      
  $(document).ready(function(){

          

                $('#formpesquisaum').submit(function(){
                    var dados = $(this).serialize();

                    $.ajax({
                        url: 'processa.php',
                        method: 'post',
                        dataType: 'html',
                        data: dados,
                        success: function(data){
                           $('#pagination_data').html(data);
                        }
                    });

                    return false;
                });
                  
        });
            </script>

 

 

 

 

 

 

 

 

 

 

 

            
    
            </script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor, utilize a TAG > CODE para postar códigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.