Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
I need help. Tenho um formulário de busca trabalhando com AJAX. O resultado só aparece se o valor retornado for diferente de nulo. Até ai beleza. Se resultado for > 0 então mostra os dados e eu posso alterar. Alterado os dados da o submit e o refresh na página, que retorna pra página anterior com a função history.back(-1); O que tá pegando é esse retorno, a div com o resultado da pesquisa 'some', ai tem que clicar de novo no botão pesquisar...como faço pra manter o resultado após o refresh da página?
>
O history.go(-1) vai fazer com que você "volte no tempo", tornando as alterações feitas temporariamente não-renderizadas.
Tente alterar o history.go(-1) para location.reload(true). :thumbsup:
entrou num loop infinito o.O kkkk
é possível fazê-lo com o header() do PHP?!
Sei que o Location: "destino" redireciona pro destino, mas uso o método post, então, fiquei sem opções.
Ué. :huh:
Tente isso então.
-------
Se caso algum dia o link acima ficar indisponível, aqui a solução:
<?php
echo "<meta HTTP-EQUIV='refresh' CONTENT='5;URL=nome_do_arquivo.php'>";isso não tbm não resolve kk
olha ai postei uma imagem explicando o problema: Imagem com exemplo do problema
Ah, agora entendi.
Você terá que transformar o input type="text que utilizou para editar o texto novamente em uma camada.
No caso, você terá que executar a ação inversa.
Por exemplo, digamos que era assim antes de clicar em editar:
<div class="usuario">Jones</div>
Aí, clicando em editar, ficou assim:
<input type="text" value="Jones" name="nome" />
Então, quando a alteração for efetuada, você deverá transformar o input novamente em uma div, tal como:
<div class="usuario">Jones</div>
Se você atualizar a página, você perde a box; se você voltar no histórico, não há atualização.
Entendeu? :thumbsup:
^^
na verdade tem apenas o input que antes do click está desabilitado e depois habilitado :)
O que deveria acontecer era o script mandar os dados pra página php e o ajax mandar os dados de volta sem ir até a página pela URL, o que não está acontecendo, por isso estou precisndo da funcão de 'retorno'.
Vou fazer uns testes, mas pelo que você falou, não tem como não perder os dados da box depois do refresh. Já que o AJAX não atualiza as informações automaticamente...
>
Vou fazer uns testes, mas pelo que você falou, não tem como não perder os dados da box depois do refresh. Já que o AJAX não atualiza as informações automaticamente...
Exato. Já ouvi falar sobre armazenar informações de AJAX em sessões e depois de manipuladas, quebra-las. Mas nunca coloquei em prática. Levantei a hipótese, se lhe interessar, corra atrás. :thumbsup:
1 idéia: seguinte, na hora que você retorna os valores ajax você não pode salvar em sessions ?
2 idéia: se você utiliza jquery: http://www.ohloh.net/p/jquery-session
3 idéia: existe um método(que não sei como se chama, mas já utilizei muito), que consistem em criar links dessa maneira:
<a href='#saveContent'>save</a>
e em javascript você consegue capturar isso:
$(window).bind('hashchange', function() {
.. work ..
});Você teria que armazenar a consulta do usuário, pode ser em sessão ou banco de dados.
Após ele atualizar a página, quando perde os resultados, você teria que testar se há resultados na sessão/bd e assim tratar o resultado como se fosse uma consulta e exibir o resultado.
O ajax sempre vai "desaparecer" caso você der um refresh, é normal, pois ele não está ligado a url/browser e sim a um evento da página. Mas não quer dizer que você não pode tratá-lo, tanto por javascript como por php.
Pesquise um pouco sobre as sessões em jQuery, conforme o Splinterzin falou. É bem fácil de utilizar.
O history.go(-1) vai fazer com que você "volte no tempo", tornando as alterações feitas temporariamente não-renderizadas.
Tente alterar o history.go(-1) para location.reload(true). :thumbsup: