Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

HugoThales

Atualizar a página toda sem refresh

Recommended Posts

Olá! Tenho uma página php, chamda broadcost.php, gostaria de saber se é possivel atualizar toda a pagina e não apenas um elemento dela sem dar refresh ou "piscar".

 

Abaixo o script:

<? if (!isset($_COOKIE["id"]) || $_COOKIE['usertype']!="chatmodels" )

{

header("location: ../../login.php");

} else{

include("../../dbase.php");

include("../../settings.php");

$result=mysql_query("SELECT user from $_COOKIE[usertype] WHERE id='$_COOKIE[id]' LIMIT 1");



	while($row = mysql_fetch_array($result)) 

	{	$username=$row[user];	}

}

mysql_free_result($result);

?>

<style type="text/css">
<!--
body,td,th {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	color: #FFFFFF;
}
body {
	background-color: #000000;
}
a:link {
	color: #99CC00;
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #99CC00;
}
a:hover {
	text-decoration: none;
	color: #99FF00;
}
a:active {
	text-decoration: none;
	color: #99CC00;
}
-->
</style>
<?
include("_models.header.php");
?>
<table width="720" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#333333">

  <?

  include("../../dbase.php");

  $model=$username;

 	$tempMoneyEarned=0;

  	$tempMoneySent=0;

	$result = mysql_query("SELECT * FROM videosessions WHERE model='$model'");

	while($row = mysql_fetch_array($result)) 

		{

		$epercentage=$row['epercentage'];

		$duration=$row['duration'];

		$cpm=$row['cpm'];

		$ammount=(($duration/60)*$cpm)*$epercentage/10000 ;

		$tempMoneyEarned+=$ammount;

		if ($row['paid']=="1"){

			$tempMoneySent+=$ammount;

			}

		}

	mysql_free_result($result);

 

  $nMoney=$tempMoneyEarned-$tempMoneySent;

  /*$result = mysql_query('SELECT moneyEarned,moneySent FROM chatmodelsstatus WHERE id="'.$_COOKIE["id"].'" LIMIT 1');

  while($row = mysql_fetch_array($result)) 

  {

  $nMoney=$row[moneyEarned];

  $nMoneySent=$row[moneySent];

  $nMoney=$nMoney-$nMoneySent;

  }*/

  $result = mysql_query('SELECT id,user,cpm,epercentage FROM chatmodels WHERE id="'.$_COOKIE["id"].'" LIMIT 1');

			while($row = mysql_fetch_array($result)) 

			{

			$nCpm=$row[cpm];

			$sUser=$row[user];

			$sId=$row[id];

			$epercentage=$row[epercentage];

			}

	mysql_free_result($result);
	

  ?>

  

  <tr valign="top">

    <td height="113" colspan="6"><div align="center">

      <p>         </p>
      <p>
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="720" height="385">
          
          <param name="movie" value="BroadcastInterface.swf">
          
          <PARAM NAME=FlashVars VALUE="&tepercentage=<? echo $epercentage;?>&fuser=<? echo $sUser; ?>&fcpm=<? echo $nCpm; ?>&fid=<? echo $sId; ?>&fmoney=<? echo $nMoney; ?>&connection=<? echo $connection_string;?>">
          
          <param name="quality" value="high">
          
          <embed flashvars="&tepercentage=<? echo $epercentage;?>&fuser=<? echo $sUser; ?>&fcpm=<? echo $nCpm; ?>&fid=<? echo $sId; ?>&fmoney=<? echo $nMoney; ?>&connection=<? echo $connection_string;?>" src="BroadcastInterface.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="720" height="385"></embed>
        </object>
        
        </p>
    </div></td>

  </tr>

  <tr>

    <td width="171"> </td>

    <td width="129"> </td>

    <td width="134"> </td>

    <td width="286" colspan="2"> </td>

  </tr>

</table>
<?
include("_models.footer.php");
?>

<?php
echo "<meta HTTP-EQUIV='refresh' CONTENT='0;URL=broadcast.php'>";
?>

Estou necessitando saber como fazer da pagina toda, pq passei 10 horas pesquisando sobre isso e so encontrei como atualizar apenas uma parte de uma pagina, se for possível, me deem exemplos de como deve ser feito. Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é possível.

 

É a mesma coisa, só que em vez de vc jogar para um ID, vc joga para TODO o elemento body. Só isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

So complementando o que o William Bruno falou.

Caso já tenha alguma experiência JavaScript pode utilizar o ajax de modo mais puro para fazer isso através do body, se não pode optar pelos scripts do Jquery que facilitam muito essa tarefa, procure pela funções get e post que elas retornam o html da pagina como resposta a requisição.

A principal diferença entre os 2 métodos e a necessidade de incorporar documento Jquery na pagina pois ele pesa uns 90Kb, isso pode ser complicado para celular, podendo ser subsistidos por outras versões do mesmo para celular o resto você acha na net.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas repostas,

 

Sim, é possível.

É a mesma coisa, só que em vez de você jogar para um ID, você joga para TODO o elemento body. Só isso.

 

So complementando o que o William Bruno falou.

Caso já tenha alguma experiência JavaScript pode utilizar o ajax de modo mais puro para fazer isso através do body, se não pode optar pelos scripts do Jquery que facilitam muito essa tarefa, procure pela funções get e post que elas retornam o html da pagina como resposta a requisição.

A principal diferença entre os 2 métodos e a necessidade de incorporar documento Jquery na pagina pois ele pesa uns 90Kb, isso pode ser complicado para celular, podendo ser subsistidos por outras versões do mesmo para celular o resto você acha na net.

Vou postar aqui como eu entendi que deva ser feito, porque sou leigo e estou tentando dificuldade pra entender, entao eu imagino pelas pesquisas que vi que teria que colocar assim:


<script src="jquery.js"></script>
 
<script>
$(document).ready(function() {
function chamada() {
 
// chamada do arquivo - o aleatório é para o script não armazenar o conteúdo do arquivo em cache
$('#conteudo').load('seuarquivo.php?aleatorio='+Math.round(Math.random()*10));
 
}
 
// 10000 = 10 segundos
var v = setInterval(chamada, 10000);
 
}
 
});
</script>

Esse código à cima eu posso colocar no começo ou no final da pagina que quero atualizar? E a div, eu coloco abaixo tbm na mesma pagina?

<div id="conteudo"></div>

Se eu for trocar por Body caso nao seja isso, como fica?

 

Obrigado desde já...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse seu exemplo traz o conteúdo do arquivo, mas não parece muito prático... você não tem controle sobre o que acontece. Como disse o RaulMC existem várias formas, eu mesmo não uso para isso Jquery, uso puro javascript... procura saber sobre XMLhttprequest (não precisa de dados em xml é apenas o nome do protocolo), com ele você busca conteúdo, pode ser até de um código que busca no banco de dados (tudo em segundo plano), e coloca ele na página atual onde você quiser, em qualquer elemento, inclusive no Body como você disse, e ainda pode controlar o que acontece, verificando se conseguiu abrir o arquivo chamado, ou colocar uma imagem de carregando/enviando etc... caso seja uma acao de inclusao ou exclusao, pode verificar se funcionou e retornar uma mensagem para o usuário...

Fica muito dinâmico, quase tudo com javascript, é como funciona gmail, google maps... não é difícil mas você tem de entender o processo todo... eu já perdi tempo querendo pular passos até que resolvi aprender de verdade... se quiser indico um livro bom... na internet tem muita informação errada, parcial, e vai acabar perdendo mais tempo fuçando que estudando...

De início procure sobre o XMLHttprequest...

Nesse link já falamos sobre isso, e expliquei como daria para usar: http://forum.imasters.com.br/topic/542313-pegar-informacoes-do-banco-sem-submit-ou-refresh/

Compartilhar este post


Link para o post
Compartilhar em outros sites

$('#conteudo').load('seuarquivo.php?aleatorio='+Math.round(Math.random()*10));

troca por:
$('body').load('seuarquivo.php?aleatorio='+Math.round(Math.random()*10));

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.