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

Desviar Fluxo Do Programa


Guest - Tiago -

Pergunta

Guest - Tiago -

Tenho o seguinte trecho de codigo, conforme abaixo:

<script>
if(desvio == "ok"){
desvio = "";
window.location = "../Informatica/Frame2.htm";
}
</script>

Logo abaixo deste codigo, existe a continuação do script feito em php.

Se a variavel desvio == ok, a pagina é redirecionada para outra. O problema é que está primeiro executando todo o codigo em php existente abaixo do codigo JS e depois redireciona para outra pagina.

O que eu queria que fizesse é que caso ocorra o redirecionamento (dependendo do valor da variavel desvio) o site fosse redirecionado e que não executasse o resto do codigo em php.

Será que existe alguma codigo em JS tipo break para eu colocar logo apos o window.location??

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Bem... espero não dizer nenhuma besteira, mas, o que me parece que está acontecendo é o seguinte:

Todo código PHP é executado no servidor, antes de enviar o conteúdo da página para o brownser. Com javaScript a conversa é direferente... ele começa a executar no browser, depois de o servidor ter interpretado todo o código php.

Por isso, o código php é executado ANTES de redirecionar a página via javascript.

Porque você não redireciona a página usando uma função do PHP? (Header('Loacation: nome_da_pagina')wink.gif

Espero ter ajudado

André

Link para o comentário
Compartilhar em outros sites

  • 0

Porque você não redireciona a página usando uma função do PHP? (Header('Loacation: nome_da_pagina')wink.gif

Se a página dele tiver qualquer saída HTML antes, não vai dar pra redirecionar com o PHP... mas, eu acho que não será esse o caso.

você não falou nenhuma besteira... PHP é server side, enquanto javascript é client side. Mas você pode mandar saídas HTML antes de terminar a execução de um script PHP (por exemplo, um chat faz isso). Aí você força toda saída de texto através da função flush... e conforme isso chega ao browser do usuário, já vai sendo processado. rolleyes.gif

Link para o comentário
Compartilhar em outros sites

  • 0

entendi...

é... de fato não sei como trabalhar com fluxos de programas...

Se eu não estiver enganado, sei que é possível redirecionar com a função Header do PHP mesmo depois de printar saídas HTML, configurando adequadamente a função "output_buffering". Mas tb não entendo muito como isso funciona...

valeu pela correção!

Link para o comentário
Compartilhar em outros sites

  • 0

Se eu não estiver enganado, sei que é possível redirecionar com a função Header do PHP mesmo depois de printar saídas HTML, configurando adequadamente a função "output_buffering". Mas tb não entendo muito como isso funciona...

É verdade, realmente é possível... mas a meu ver, é mais uma "gambiarra" interna do PHP. você faz isso com as funções ob_start() e ob_end_flush() (veja aqui: http://br.php.net/ob_start).

Eu falo que é gambiarra porque, se você ler na documentação dessa função, vai ver que o que ela faz é simplesmente segurar as saídas HTML em buffer... e mandá-las só depois que você usar a ob_flush_end().

Mas qual a diferença entre você fazer isso com essa função e você fazer isso associando as saídas HTML a variáveis e depois imprimí-las com um "echo"??? Na minha opinião, nenhuma... hehehe!

Bom, mas se essa função existe, deve ser útil pra alguém, né...

Link para o comentário
Compartilhar em outros sites

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...