Ir para conteúdo
Fórum Script Brasil
  • 0

Paginação usando form html


playnet

Pergunta

Boa noite!

Gostaria de uma ajuda para ajustar o funcionamento de paginação com os dados enviados através de um form, vou utilizar um exemplo fictício para descrever o que preciso.

Form para obter duas informações (loja e produto) através de uma lista de opções extraídas do BD:

<?php

//Conectar ao BD
    include_once("connection.php");

?>    

<html>

    <head>
        <title>Test</title>    
    </head>
        <body bgcolor="DAEBE1">
            <div id="report">
                
                <form action="view_produtos.php" method="POST" enctype="multipart/form-data">

                    Loja: <select name="loja"> 
                            <option value="">Selecione a Loja</option>
                        <?php
                        $query = "SELECT nome FROM lojas WHERE ativo='S' order by nome asc";
                        $result = mysqli_query($conn, $query) or die ("Error ao selecionar loja");
                        foreach ($result as $loja) {
                        ?>    
                            <option value="<?php echo $loja["nome"]; ?>"><?php echo $loja["nome"];?></option>
                        <?php
                        }
                        ?>
                            </select>&emsp;

                    Produto: <select name="produto">
                            <option value="">Selecione o produto</option>
                        <?php
                        $query = "SELECT nome FROM produtos order by nome asc";
                        $result = mysqli_query($conn, $query) or die ("Error ao selecionar produtos");
                        foreach ($result as $produto) {
                        ?>    
                            <option value="<?php echo $produto["nome"]; ?>"><?php echo $produto["nome"];?></option>
                        <?php
                        }
                        ?>
                            </select>    

                        <p><input type="submit" value="Enviar" style="width: 120px; height: 30px"></p>
                        <p><input type="hidden" name="test" value="ok"></p>    
                </form>                  

            </div>

        </body>      
</html>      

PHP - view_produtos.php

Pego as informações enviadas pelo submit e uso suas respectivas variáveis na consulta sql. Mostro o resultado da consulta com o código de paginação ativada.

<?php

//Conectar ao BD
    include_once("connection.php");

    @session_start();
?>    

<html>

    <head>
        <title>Test</title>    
    </head>
        <body bgcolor="DAEBE1">

                <?php

                if(isset($_POST['test']) && $_POST['test'] == "ok"){

                    $loja = $_POST['loja'];
                    $produto = $_POST['produto'];

                ?>
            <p>
            <table border='2'>
                <tr bgcolor='#A9A9A9' align='center'>
                    <td>Loja</td>
                    <td>Produto</td>
                </tr>    

                <?php

            //Paginação
                $page = (isset($_GET['page']))? $_GET['page'] : 1;   
                
                $query = "SELECT loja, produto FROM ... WHERE $loja ... AND $produto ...";
                $result = mysqli_query($conn, $query) or die ("Erro na consulta");    
                $rows = mysqli_num_rows($result);

                $total_reg = "10"; // Número de registros por página
                $numpage = ceil($rows/$total_reg);
                $inicio = ($total_reg*$page)-$total_reg;
                $limit_result = mysqli_query($conn, "$query LIMIT $inicio, $total_reg") or die ("Erro na consulta"); 

                
            while ($row = mysqli_fetch_object($limit_result))
            {        
                    echo "<tr align='center'>";
                    echo "<td>".$row->loja."</td>";
                    echo "<td>".$row->produto."</td>";
                    echo"</tr>";    
            }

            //Exibe a Paginação 
            for($i = 1; $i < $numpage + 1; $i++) { 
                echo "<a href='?page=$i'>Page".$i."</a>&emsp;"; 
            }
                                
            }    
                
            ?>    
                
            </table>

        </body>     
</html>          
 

Tanto a consulta como o código de paginação estão funcionando... o problema é:

Se eu executo o view_produtos.php individualmente tudo funciona, a quebra de página fica certinha mostrando o resultado exato em cada page. Agora se pego os dados a partir do form que eu descrevi acima, ao clicar no link da page 2 por exemplo, ele mostra o resultado em branco, sendo necessário dar submit novamente pra exibir a page 2. 

Como eu faria para mostrar os resultados da page 2, page 3, etc.. sem precisar enviar os dados de form novamente? Acredito também que eu precisaria manter os dados no form após o submit.

Alguma sugestão?

Obrigado,

Alex

     

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...