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

Função Php No Onload ?


rogerio_st

Pergunta

13 respostass a esta questão

Posts Recomendados

  • 0

Na verdade, não é possível.

O PHP trabalha somente no servidor, ou seja, quando a página está sendo processada pelo servidor. O servidor não conhece as tags HTML, e por isso as envia ao cliente qu a solicitou. Só reconhece a programação PHP, processando-a e retornando somente sua saída para o cliente. Por isso não vemos, no Exibir código-fonte, o conteúdo PHP.

Assim, quem processará as tags HTML é o cliente, o navegador, que já vai receber processado o conteúdo PHP. O javascript é interpretado pelo cliente, por isso é possível chamar suas funções pelo onload, onclick, etc.

É aí que entra o AJAX. Você chama uma função javascript normalmente, no onload, ou onclick, etc.. e ele se encarrega de ler o conteúdo de uma outra página (PHP, por exemplo, contendo a função que se deseja.

Deu pra entender?

Link para o comentário
Compartilhar em outros sites

  • 0

iKKinet,

Na verdade o que eu quero fazer é criar uma função (temporizador) que simule um refresh, mas sem usar as tag's html, quero de 10 em 10 segundos ler um registro e dar um print nas informações, estou fazendo um player (streaming) para uma rádio, e preciso mostrar o nome da música, artista, album, etc...

Já pesqusei algumas funções, e as mais próximas que eu encontrei dessa função foram wait e sleep, mesmo assim não são exatamente o que eu queria, se você tiver alguma sugestão seria muito bem vinda.

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

  • 0

Pois é.

O que se pode fazer é colocar um temporizador em javascript, mesmo. E a cada intervalo, chamar uma função do xmlhttprequest (ou algo parecido) - o Ajax. E essa função pega o resultado de uma página php que trará as informações solicitadas.

Link para o comentário
Compartilhar em outros sites

  • 0

Tellys,

No onLoad eu tentei colocar mais ou menos desse jeito, mas não rodou.

O aplicativo é um player de uma rádio onlline (streaming).

O que eu preciso é o seguinte: de 10 em 10 segundos ler o ultimo registro de uma tabela e trazer (print/echo) esses dados para a tela, mas não quero e nem devo fazer isso com um refresh, para evitar também aqueles problemas e mensagens de erro tipo "Não foi possível conectar ao BD", o problema maior é que eu tive que usar um monte de div's e iframes, praticamente uma para cada tipo de informação (imagem da capa do disco, próxima música, nome do artista, etc...).

Com um refresh para cada iframe eu corro o risco de algum deles não conseguir conectar e quebrar o layout, e não posso colocar tudo numa só página porque o player propriamente tem que ficar tocando direto, logo não posso dar o refresh na página mãe, porque isso iria parar o som e gerar nova bufferização e tal...

ABS

Rogerio

Link para o comentário
Compartilhar em outros sites

  • 0

não.... mas nesses casos ai se for streaming mesmo não precisa disso ñao ue!!!!

ah mas... é de execuçao sem servidor né....

ai

tem que ser js ou ajax mesm...rs

eu ate tenho um esqueminha aqui +- isso so que tem que ajustar pra sua razao...rs agora vo pro rango, volto + tarde se você tiver ai agente se fala

Link para o comentário
Compartilhar em outros sites

  • 0

Bem vamos por parte:

poe isso no head de sua home

são as funçoes js e ajax...

//Tellys Castro supertelnet.com - atendimento@supertelnet.com
// JavaScript Document 
// FUNÇÃO RESPONSÁVEL DE CONECTAR A UMA PAGINA EXTERNA NO NOSSO CASO A BUSCA_NOME.PHP 
// E RETORNAR OS RESULTADOS 
<scritp>
function pesquisa(valor){ /*a var valor é a referencia de pesquisa no db*/
if (valor){
    url="busca_nome.php?valor="+valor+"&&db=nome de seu banco de dados&&coluna=nome da coluna";
    id_tag="pagina";
    ajax(url, id_tag);
    }
}
function ajax(url, id_tag){ 
//alert(nick); 
//alert(dest); 
//alert(msg); 
req = null; 
// Procura por um objeto nativo (Mozilla/Safari) 
    if (window.XMLHttpRequest){ 
     req = new XMLHttpRequest(); 
     req.onreadystatechange = processReqChange; 
     req.open("GET",url,true); 
     req.send(null); 
    // Procura por uma versão ActiveX (IE) 
     }
         else if (window.ActiveXObject) { 
         req = new ActiveXObject("Microsoft.XMLHTTP"); 
             if (req) { 
             req.onreadystatechange = processReqChange; 
             req.open("GET",url,true); 
             req.send(); 
             } 
        } 
} 
function processReqChange(){ 
    // apenas quando o estado for "completado" 
    if (req.readyState == 4) { 
        // apenas se o servidor retornar "OK" 
        if (req.status ==200) { 
        // procura pela div id="pagina" e insere o conteudo 
        // retornado nela, como texto HTML 
        document.getElementById(id_tag).innerHTML = req.responseText; 
        }
         else { 
         alert("Houve um problema ao obter os dados:n" + req.statusText); 
         } 
    } 
} 

Voce tera que colocar no body onLoad uma referncia para a pesquisa, o ideal é o id da linha da musica,
<body onLoad="pesquisa('"<?php echo $id_da_musica;?>"')">
salva isso como
busca_nome.php
<?php 
$db = $_GET['db'];
$coluna = $_GET['coluna'];
$valor = $_GET['valor'];
$erro = $_GET['erro'];
if(!empty($_GET["valor"])){
$conexao=mysql_connect("localhost","root"); 
mysql_select_db("visual"); 
$sql="SELECT * FROM $db WHERE $coluna LIKE'$valor%'"; // EXECUTA A INSTRUÇÃO SELECT PASSANDO O QUE O USUARIO DIGITOU 
$resultado=mysql_query($sql) or die (mysql_error()); 
$linhas=mysql_num_rows($resultado);//VERIFICA A QUANTIDADE DE REGISTROS RETORNADOS 
if($linhas>0){ 
while($pegar=mysql_fetch_array($resultado)) 
echo $pegar['nome'].'<br>'; 
} 
else echo $erro;
} 
?>
Agora os dados serao impresso na tag com id
pagina
coloca assim que da:
<div id="pagina" class="bold"></div>

cara to com mta coisa pra fazer,.... vê se da certo...acho que sim!!! se não agente volta e resorve

t+ :ph34r:

Link para o comentário
Compartilhar em outros sites

  • 0

cara tava olhando aqui, não testei isso ai não!!!!! e acho que so colocar a chamada da funçao no body não vai ser suficiente, pois nesse caso vai fazer a pesquisa somente do primeira musica que carregar, acho... (+ uma vez digo, não testei...) testea ai desse jeito, se não der, teremos que imaginar outro jeito de chamr essa funcão, tipo de tempo em tempo.... acho que vai ser a melhor opção!!!!

mas vê desse jeito ai!!!! pois o caminho é +- isso

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Tellys,

É justamente isso, preciso chamar isso de tempo em tempo (a cada 10 seg), mas sem a atuação do usuário, teria que ser automatico, vou dar uma testada no código dou u retorno.

Valeu

ABS

Rogerio

PS.: te mandei uma PM com o endereço do player, se você quiser conferir qual é o problema dá uma olhada, são 6 iframes (no ar / proxima / album / capa / comprar / letra), e tenho que fazr esse tipo de rotina pra cada um!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, se você estiver achando complicado o uso do ajax, você poderia resolver isso com um pequeno script javascript.

Ex:

index.html

-------------------------------------------------------------------------

<html>

<body bgcolor="#FFFFFF">

<iframe src="pag2.html" width="200" height="200" frameborder="0" scrolling="no">

</body>

</html>

-------------------------------------------------------------------------

pag2.html >> seria a sua página em php para pegar o registro

-------------------------------------------------------------------------

<html>

<head>

<script language="javascript">

window.setTimeout("window.location.reload()",10000); //tempo em milésimos

</script>

</head>

<body bgcolor="#000000" text="#FFFFFF">

Atualizando em 10 segundos

</body>

</html>

-------------------------------------------------------------------------

Simples e funcional usando apenas uma linha em javascript, assim você vai usar o script dentro da página que fica no iframe atualizando somente ela.

Também poderia usar esse script na página pai dentro do onload.. indicando qual seria o frame a ser atualizado, mais acho que não haveria necessidade para esse caso.

espero ter ajudado..!

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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...