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

Apagar tela com php ou html


Guest --Wagner --

Pergunta

Guest --Wagner --

Ola amigo.

Peço uma pequena ajuda para aquele que manjam de programação. ^_^

Eu estou fazendo um pequeno chat e estava fazendo um pequeno esquema com um iframe em que o frame abre um arquivo php que vai rodando um while e atualizando a tela, abaixo o codigo:

<?
  $cont = 1;
  //INICIA A REPETIÇAÕ
  while ($cont==1){
   $consulta = mysql_query("SELECT msg FROM chat ORDER BY id");
   sleep(1);
   while ($linha = mysql_fetch_array($consulta)){
     echo $linha['msg'];?> <br><?
     flush();
   }
 }
?>

Esta tudo funcionando certo, tenho o frame em cima e um pequeno formulario onde digito a mensagem ( é o inicio do desenvovimento então ainda esta bem basico) e o while vai atualizando na tela de acordo com o tempo que defino para atualiza-la.

O problema é que este codigo de php vai escrevendo as mensagem consecutivamente e repetindo elas e eu queria que ante do while rodar novamente para escrever as mensagens na tela que a mesma fosse limpa para funcionar realmente como uma atualização.

Existe alguma função de php ou html em que eu possa adicionar e limpar a tela antes do while escrever as mensagens?

Desde já obrigado. ^_^

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Dá pra fazer com javascript.

Exemplo:

element = getElementsByID("div");
element.innerHTML = '';
E uma dica, se o while for para ser sempre TRUE, a não ser que você queira mudar $cont para 0 uma hora, você pode utilizar:
while (TRUE){

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

A minha sugestão é atualizar a tela, depois de enviar a nova mensagem, assim:
 

<?php
// CREATE TABLE `chat` (`id` int NOT NULL AUTO_INCREMENT, `msg` varchar(40) DEFAULT NULL,
// PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
$mysqli=new mysqli("localhost","root","","teste");
if(isset($_GET['novaMsg']))
{
    $novaMsg=$_GET['novaMsg'];
    $mysqli->query("insert into chat (msg) values ('$novaMsg')");
}
$query=$mysqli->query("select * from (select * from chat order by id desc limit 3) as t1 order by t1.id"); ?>
<div style="border:1px solid">
<?php
while($row=$query->fetch_assoc())
{ 
    echo $row['msg']."<p>";
}
?>
</div>
<p>
<form>
<textarea name="novaMsg" rows="5" cols="100" autofocus></textarea>
<input type=submit>
</form>

 

Apesar da questão ser de 2008, nesse código apresento a sugestão de exibir as três últimas mensagens do chat mas em ordem crescente.

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,2k
    • Posts
      652,1k
×
×
  • Criar Novo...