Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
Carregando comentários...