Ir para conteúdo

POWERED BY:

Arquivado

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

Miguel Laforet

[Resolvido] ajax + resposta dinamica

Recommended Posts

Galera, o problema é um pouco complicado (pelo menos na minha cabeça agora está). Vou tentar explicar.

Eu criei um chat, todo baseado em ajax e php.

Quando eu envio uma msg, ele envia por getJSON para um arquivo php, que salva no banco e ja traz as novas mensagens.

A cada 2 segundos ele faz outro getJSON que envia a ultima mensagem sendo exibida no chat do usuário e traz as novas mensagens a partir da antiga.

Para trazer o JSON eu criei a seguinte estrutura:

 

quantidade: contém a quantidade de mensagens novas.

codigo: array contendo o codigo de cada mensagem nova.

 

Agora vem o pepino. Para cada mensagem, eu crio mais uma opção do JSON cujo título é o proprio codigo da msg, e no conteudo, traz o html da mensagem.

 

Vou dar um exemplo para vocês entenderem na prática:

 

quantidade: 2

codigo: {60, 61}

60: "<li rel='60'>Mensagem</li>"

61: "<li rel='61'>Mensagem</li>"

 

Para verificar se alguma mensagem q eu trouxe nova (por um bug de delay) já esta sendo exibida no site, eu pego os códigos e verifico se ja existe li[rel=codigo].

 

Problema descrito, agora eu vou mostrar o código q eu tentei usar:

 

$.getJSON(caminho, atributos, function(resposta){
       for(var x = 0; x < resposta.quantidade; x++){
           if(resposta.quantidade > 0 && (resposta.codigo[x]) > 0){
               var posArr = (resposta.codigo[x]);
               if(!$(".lembretes ul li[rel="+(resposta.codigo[x])+"]").length){
                   $(".lembretes ul").append(resposta.posArr.contentHtml);    // O erro está nesta linha.
                   $(".lembretes ul").find("li.novoLembrete").each(function(){
                       $(this).slideToggle("", function(){
                           if(!somente_carrega){
                               $("#f_lembrete").val("");
                               $("#f_lembrete").focus();
                           }
                       });
                       $(this).removeClass("novoLembrete");
                       $(".lembretes").scrollTo($(".lembretes ul").height(),500);
                   })
               }
           }
       }
   }, "POST");

 

Pois então, na linha com erro que eu coloquei o comentário acontece o seguinte: o javascript tenta achar o caminho do json achando q o nome é "posArray", mas eu na verdade quero pegar o valor dessa variavel, que é 60, 61 etc...

 

 

Alguém pode me ajudar?

Antecipadamente, muito obrigado

Miguel Laforet

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

resposta[ posArr ].contentHtml

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.