Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte
Tenho uma página chamada "teste.php" nessa página tem um formulário com vários campos que o usuário usa para fazer um filtro dos campos a serem pesquisado...
Ao clicar no Pesquisar (submit) ... o action da página faz a seguinte ação
script type="text/javascript">
$(function($){
$('#meuFormulario').submit(function(){
var dados = jQuery(this).serialize();
jQuery.ajax({
type: "POST",
url: "src/controller/request_teste.php",
data: dados,
cache: false,
beforeSend: function() {
$('#resultPesq').html("Carregando...");
},
success: function(e) {
//window.alert(e);
$('#resultPesq').html(e);
},
error: function() {
$('#resultPesq').html('Não foi encontrado dados!');
}
});
return false;
});
});
</script>
O arquivo "**request_teste.php**", é quem recebe os dados do POST e faz o tratamento desses dados....
Ao final desse arquivo tem um **require_once **'**result_teste.php**' que vem a ser o arquivo onde irá mostrar o resultado da pesquisa.
Nesse arquivo eu fiz uma páginação ao final do resultado.
Entao primeiramente o link que estou acessando é
**principal.php?link=teste.php ** (abre a pagina com o formulário)
ao clicar em pesquisar o link nao muda
quando clico em página 2, é feito um refresh e a url fica **principal.php?link=teste.php&pag=2**
O que acontece é que como a página faz um refresh eu perco todos dados do meu POST e tambem preciso clicar no botão pesquisar pra carregar os dado da página 2.
Alguem sabe como ajustar isso ?
Se precisarem de mais informações me avisemBoa tarde tudo certo ?
Eu acabei conseguindo fazer por ajax mesmo ... eu na verdade fiz a chamada para o request novamente passando os dados da pesquisa e mais ou valor da página. Com isso não precisei alterar a URL e inserir a 'pag' ...
Ficou tudo por POST mesmo.
Por enquanto esta funcionando ... mas é sempre bom ter outras alternativas.
Muito obrigado pela ajuda e pelas dicas.
No básico você terá que levar a informação da busca por GET
teste.php
/*
Se houver na url "pesquisar" executa ele caso não, use dados do post
É extremamente crucial que faça um tratamento dessa var
porque contantemente ela vai se usada na query
*/
$busca = (isset($_GET['pesquisar']) ? urldecode($_GET['pesquisar']): $_POST['pesquisar']);
/ Se houver na url "pag" use, caso não, use 1 /
etc...
Ou seja nada mais é que ao recarregar a página por algum link a informação do input é mantida sendo constantemente enviada pelo protocolo GET.
Requer muito cuidado pois isso pode ser um tiro no pé se não fazer o correto tratamento dos dados, além que softwares através de um hardware bem potente+conexão extremante alta pode derrubar sua aplicação através de centenas de acessos por segundo.
Então uma outra alternativa é você fazer paginação sem trocar de página fazendo somente uma requisição.
Para essa finalidade desenvolvi um script para paginação se interessar veja:
Spoiler
teste.php
/* * Lembre de fazer o tratamento dos dados de $pesquisar antes de mandar essa * informação para seu banco de dados */ } else {