Pegar objetos jason via ajax
Galera, Boa tarde, estou com um grande problema, eu estou tentando criar um bate papo, mas o meu ajax não mostra os valores, que o php mandou via json, quando eu abro o debug, lá mostra que os valores foram retornados. No debug mostra assim:
[{"id":"2","mensagem":"teste 2","fotoUser":"","id_de":"1","id_para":"11","janela_de":"11"},{"id":"1","mensagem":"oi tio","fotoUser":"","id_de":"1","id_para":"11","janela_de":"11"}]
Aqui está meu código JavaScript:
jQuery(function(){
var userOnline = Number(jQuery('span.userlog').attr('id'));
function add_janela(id, nome, status){
var janelas = Number(jQuery('#chats .window').length);
var pixels = (270+5)*janelas;
var style = 'float:none; position:absolute; bottom:0; left:'+pixels+'px';
var splitDados = id.split(':');
var id_user = Number(splitDados[1]);
var janela = '<div class="window" id="janela_'+id+'" style="'+style+'">';
janela += '<div class="header_window"><a href="#" title="fechar" class="close">X</a> <span class="name">'+nome+'</span><span id="'+id+'" class="'+status+'"></span></div>';
janela += '<div class="body"><div class="mensegers"><ul></ul></div>';
janela += '<div class="send_message" id="'+id+'"><input type="text" name="mensagem" class="msg" id="'+id+'"/></div></div></div>';
jQuery('#chats').append(janela);
}
/* aqui começa a função de retornar historico*/function retorna_historico(id_conversa){
jQuery.ajax({
type: 'POST',
url: 'historico.php',
data: {conversacom: id_conversa, online: userOnline},
dataType: 'json',
success: function(data){
jQuery.each(data, function(i,msg){
if(jQuery('#janela_'+msg.janela_de).length > 0){
if(userOnline == +msg.id_de){
jQuery('#janela_'+msg.janela_de+'.mensegers ul').append('<li id="'+msg.id+'" class="me"><p>'+msg.mensagem+'</p></li>');
}else{
jQuery('#janela_'+msg.janela_de+'.mensegers ul').append('<li id="'+msg.id+'"><div class="imgsmall"></div><img src="upload/'+msg.fotoUser+'"/><p>'+msg.mensagem+'</p></li>');
}
}
});
[].reverse.call(jQuery('#janela_'+id_conversa+'.mensegers li')).appendTo(jQuery('#janela_'+id_conversa+'.mensegers ul'));
var altura = jQuery('#janela_'+id_conversa+'.mensegers').height();
jQuery('#janela_'+id_conversa+'.mensegers').animate({scrollTop: altura},'500');
}
});
}/*aqui termina a função*/
jQuery('body').on('click', '#users_on a',function(){
var id = jQuery(this).attr('id');
jQuery(this).removeClass('comecar');
var status = jQuery(this).next().attr('class');
var idJanela = Number(id);
if(jQuery('#janela_'+idJanela).length == 0){
var nome = jQuery(this).text();
add_janela(id,nome,status)
/*Aqui exibe os dados retornados*/retorna_historico(idJanela);
}else{
jQuery(this).removeClass('comecar');
}
});
jQuery('body').on('click','.header_window',function(){
var next = jQuery(this).next();
next.toggle(100);
});
jQuery('body').on('click', '.close',function(){
var parent = jQuery(this).parent().parent();
var idParent = parent.attr('id');
var splitParent = idParent.split('_');
var idJanelaFechada = Number(splitParent[1]);
var contagem = Number(jQuery('.window').length)-1;
var indice = Number(jQuery('.close').index(this));
var restamAfrente = contagem-indice;
for(var i =1; i <= restamAfrente; i++){
jQuery('window:eq('+(indice+i)+')').animate({left:"-=275"}, 200);
}
parent.remove();
jQuery('#users_on li#'+idJanelaFechada+'a').addClass('comecar');
});
jQuery('body').on('keyup', '.msg', function(e){
if(e.which == 13){
var texto = jQuery(this).val();
var id = jQuery(this).attr('id');
jQuery.ajax({
type: 'POST',
url: 'submit.php',
data:{mensagem:texto, de:userOnline, para:id},
success: function(retorno){
if(retorno !== 'ok'){
jQuery('.msg').val('');
}
}
});
}
});
});
Código php(Ele parece está correto):
<?php
require("conn.php");
?>
<?php
$load = htmlentities(strip_tags($_POST['conversacom']));
$mensagens = array();
$id_conversa = (int)$_POST['conversacom'];
$online = (int)$_POST['online'];
$pegaConversas = mysql_query("SELECT * FROM conversas WHERE de='$online' AND para='$id_conversa' OR de='$id_conversa' AND para='$online' ORDER BY id DESC LIMIT 10");
while($row = mysql_fetch_assoc($pegaConversas)){
$fotouser = '';
if($online == $row['de']){
$janela_de = $row['para'];
}elseif($online == $row['para']){
$janela_de = $row['de'];
$loco = $row['image'];
$pegaFoto = mysql_query("SELECT image FROM users WHERE id='$loco'");
$pegafoto = mysql_query($pegaFoto);
while($usr = mysql_fetch_assoc($pegafoto)){
$fotouser = ($usr['image'] == '') ? 'img/padrao.png' : 'upload/'.$usr['image'];
}
}
$emotions = array(':)', ':@', '8)', ':D', ':3', ':(', ';)');
$imgs = array(
'<img src="emotions/nice.png" width="14"/>',
'<img src="emotions/angry.png" width="14"/>',
'<img src="emotions/cool.png" width="14" />',
'<img src="emotions/happy.png" width="14" />',
'<img src="emotions/ooh.png" width="14" />',
'<img src="emotions/sad.png" width="14" />',
'<img src="emotions/right.png" width="14" />'
);
$msg = str_replace($emotions, $imgs, $row['mensagem']);
$mensagens[] = array(
'id' => $row['id'],
'mensagem' => utf8_encode($msg),
'fotoUser' => $fotouser,
'id_de' => $row['de'],
'id_para' => $row['para'],
'janela_de' => $janela_de
);
}
die(json_encode($mensagens));
?>Discussão (2)
Carregando comentários...