Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Preciso de ajuda para executar um redimensionamento via:
window.location.href = "pagina.php?p="+ xp +"&p2="+ xp2;
Ocorre que estou chamando a função dinamicamente pelo php por razão de permissões pré-estabelecidas a partir do perfil do usuário que está acessando a pagina.
Ou seja, no inicio do carregamento da página PHP efetua a validação da permissão do usuário e daí então redireciono o mesmo para a parte da tela que o mesmo tem permissão (P=x &p2=y)
...
No entanto ao chamar o função acima seja no inicio da tela (após o php) ou no final da tela (após o carregamento) a função entra e loop infinito.
Estou chamando assim:
> echo "<script>funcao_red('".$p."','".$p2."')</script>";
Preciso de uma forma para executar o redir... Apenas uma vez.
Detalhes:
a) Não posso usar o redirect do php " header("location: pagina.php) "...
Porque a pagina já foi encabeçada no navegador...
B) Preciso que seja em JavaScript mesmo... Porque preciso manter a captura via $_GET[variavel] da indicações das partes da página.
Alguém teria aí um palpite para ajudar?
Puxa?
Será que ntão tem mesmo alterantiva no JS??
Haidan, sim onload fuciona da mesma forma que :
echo "<script>funcao_red('".$p."','".$p2."')</script>";
Como valida a execução apenas uma vez.. considerando que preciso em JS...
var n=1; //// gobal
function redir_pagina(xp1,xp2){
...
if(n==1){
n++;
window.location.href = "pagina.php?p1="+ xp +"&p2="+ xp2;
}
..
}cara, isso é gambiarra.
faça o redirect no php.
Opah Willian... Blz!?
Sim... Pode não ser a melhor forma ...Mais é que tem pelo menos umas 10 telas e sub-telas com a validação/permissões na parada.. E tempo é que ninguem tem. (rs).
Não tem memo um jeito? Cosiderando sua exepriência?
Abraço
Olá Pessoal,
“Há sempre mais de uma maneira de se chegar a Roma”...
Resolvi o problema com
Chamando o redir... via setInterval do JS/Jquery mesmo.
Antes porem, alguns comentários:
O problema (além do comentado acima):
Como tinha que pegar as permissões para depois redirecionar... Entrava em “loop” porque de “certa” a pagina não estava tolamente completa ou carregada – a meu ver.
Daí mesmo usando “JS” ou “header("location: pagina.php")”
Cairia fora da condição...
Então precisa de um “flag” que pegasse a existência da informação para posterior validação.
Via “Session” não dava porque ao recarregar “estaciava” também a session vazia.
Única saída foi usar cookie...
Segue:
$(document).ready(function() {
var timer = null, interval = 1,value = 0;
//globais
comeca();
function comeca(){
var xVrl = pegaLerCookie('aqui');
if(xVrl=='vcfez'){
ExcluirCookie('aqui');
}else{
if(timer !== null) return;
timer = setInterval(function () {
value = value+1;
$("#timeLeft").html(value);
if(value==1){
termina();
}
}, interval);
}
}
function termina(){
GerarUmCookie('aqui', 'vcfez', 1);
clearInterval(timer);
window.location = ("pagina.php?p1=4&p2=3");
}
});
Já tentou usar o onload?