Ir para conteúdo

POWERED BY:

Arquivado

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

Alex Cota

retorno de post

Recommended Posts

bom to com um probleminha com o post do jquery, eu faço a consulta em meu arquivo php, e retorno a consulta caso ele for diferente de vazio, porem o post esta imprimindo a resposta como vazio "", ai vai aumentando as linhas no html, ate ai nenhum problema, mas depois que aumenta as linhas e eu receber uma consulta com conteudo ele imprime a consulta varias vezes, tipo se ele tiver imprimido 10 em branco "" quando gerar a consulta e tiver retorno ele imprime 10 campos da consulta, alguem tem uma ideia

 

 

função java script que estou usando

 

$(document).ready(function(){
	 $(function() {
	teste.teste()
	});
   	teste = {
		teste:function()
	{

		var id_first = $('.classe_status:first').attr('id');	

	    $.post('jquery/atualiza_atualizacoes.php',{id_first:id_first},function(retorno){
			if(retorno!="")
			{			
			alert(retorno)		
				$('#div_mostra_status').prepend(retorno)	
			}
			});
		setInterval("teste.teste()",60000)

	}

	}

	});

 

 

arquivo php


$retorno="";
$id_first=limpa_sql($_POST['id_first']);

$sql="select * from tpm_perfil_status where TPMps_id>".$id_first." && (TPMps_id_perfil=(select TPMpa_id_amigo from tpm_perfil_amigos where TPMpa_id_amigo1=".$_SESSION['perfil_profile'].") || TPMps_id_perfil=(select TPMpa_id_amigo1 from tpm_perfil_amigos where TPMpa_id_amigo=".$_SESSION['perfil_profile'].")) order by TPMps_id asc";	
			if($resultado_status=$con->banco->SelectLimit($sql,40,0))
			{
				while(!$resultado_status->EOF)
				{
				$id=$resultado_status->fields['TPMps_id_perfil'];
				$sql="select * from tpm_perfil where TPMpe_id=".$id;
				$resultado_mostra_foto=$con->banco->Execute($sql);
				$data=$resultado_status->fields['TPMps_postagem'];
				$data=explode(" ",$data); 
				$data= implode('/',array_reverse(explode('-',$data[0]))).' '.$data[1];



				$retorno=$retorno.'<div style="border-bottom:solid 1px #CCC;margin-bottom:10px;padding-bottom:10px;padding-left:5px;min-height:75px;max-height:600px;overflow:auto" class="classe_status" id="'.$resultado_status->fields['TPMps_id'].'">	
                           	<div style="width:50px;float:left">'.

            	'<img src="../perfil_fotos/'.$id.'/perfil/'.$resultado_mostra_foto->fields['TPMpe_foto_perfil'].'" width="50px" height="50px" border="no" align="texttop" />
                               </div>
                               <div style="width:400px;margin-left:5px;display:inline-block">
                              <font style="font-size:16px;color:#06F;font-weight:bold">'.$resultado_mostra_foto->fields['TPMpe_nome'].' '.$resultado_mostra_foto->fields['TPMpe_sobrenome'].' </font>'.$resultado_status->fields['TPMps_tipo'].'

                               </div>

                             <div style="padding-left:10px;margin-left:60px;padding-top:5px" class="mensagem_status">'.$resultado_status->fields['TPMps_mensagem'].'
                              </div>
                               <div style="text-align:right;display:inline-block;float:right;margin-top:30px;padding-right:5px">'.
                             		$data.'
                              </div>
                    </div>';
			$resultado_status->MoveNext();
				}					
				 	if($retorno!="")
					{
						echo $retorno;
					}
				}

Compartilhar este post


Link para o post
Compartilhar em outros sites

remova essa linha:

setInterval("teste.teste()",60000)

 

troque:

$(document).ready(function(){
                $(function() {
               teste.teste()
               });

por:

$(document).ready(function(){
      window.setInterval( teste.teste, 6000 );

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo assim quando ele volta ele traz a quantidade de atualização igual ao que nao foi exibido. ex: se ele consultar 10 vezes e nao obter nenhuma resposta ele volta como brnaco na 11ª consulta ele tiver resposta ele repete a resposta 11 vezes, fica os espaços no html assim

 

""

""

""

""

""

""

""

""

""

""

""

 

ai quando gerar a consulta se retornar uma div com conteudo ele representa a div no numero de espaços vazios q tinha

 

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

<div></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque assim:

 

$('#div_mostra_status').append( retorno );

caso ainda tenha dúvidas, poste o script completo depois das modificações.

e se possível um link para debugarmos online.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu to usando prepend pq eu preciso que venha antes do primeiro, deu a mesma coisa, quando retorna com conteudo na variavel e retorno ele imprime um tanto com o mesmo conteudo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua com problemas ?

 

então poste como ficou o teu script agora, depois das correções, ou um link online para que eu debugue.

 

e como está o html que recebe ?

 

 

 

apenas para teste, o "erro" acontece, se você trocar o prepend() por append() ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mesmo com append() ele me retorna o erro, coloquei uma função no php pra ver o q ele retorna, ele conta 1 varia vezes como se chamasse o teste diversas vezes em que a consulta ficou vazia, parece q ta dando um loop no post, por que eu coloquei fora do while no php, e mesmo assim ele mostra varias vezes a mensagem q coloquei no começo do arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste como está o seu js atual, depois das correções que eu sugeri. [pedindo pela terceira vez]

 

realmente, se você disparar um setInterval() a cada vez q chamar a função, você está multiplicando o numero de vezes a ser chamado.

Por esse motivo, eu disse para você remover o setInterval() dali, e chamar somente no início, e não recursivamente.

 

 

 

Se você não responder oque eu perguntar, fica muito difícil eu te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

me desculpa e q tava instalando o firefox pra debugar, aki ele ta normal no firefox nos outros navegadores que tava dando esse erro pode ser por estar rodando local, acho que nao terei mais problemas, mais tarde vou upalo pra testar em servidor web, qualquer coisa eu volto a te incomodar, obrigado

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.