Итак, я создаю интегрированное приложение чата в CRM. Всякий раз, когда вошедший в систему пользователь нажимает на контакт, он отображает историю чата между обоими пользователями, используя вызовы Ajax, и именно здесь начинаются проблемы.
Итак, вот мой Ajax Код вызова:
function GetChatHistory(receiver_id){
$.ajax({
dataType : "json",
url: '/chat/get_chat_history_by_user',
data:{receiver_id:receiver_id},
success:function(data)
{
$('#chathistory').html(data);
ScrollDown();
},
error: function (jqXHR, status, err) {
// alert('Local error callback');
alert("error fetching")
}
});
}
Это мой контроллер
public function get_chat_history_by_user(){
//get the receiver id
$receiver_id = $this->input->get('receiver_id');
//get the sender id
$Logged_sender_id = $this->session->userdata['user_id'];
$history = $this->chat_model->GetReciverChatHistory($receiver_id);
foreach($history as $chat):
$message_id = $chat['id'];
$sender_id = $chat['sender_id'];
$userName = $this->UserModel->GetName($chat['sender_id']);
$userPic = $this->UserModel->PictureUrlById($chat['sender_id']);
$messagebody = $chat['message'];
$messagedatetime = date('d M H:i A',strtotime($chat['message_date_time']));
?>
<?php if($Logged_sender_id!=$sender_id){?>
<!-- Message. Default to the left -->
<div class="direct-chat-msg">
<div class="direct-chat-info clearfix">
<span ><?=$userName;?></span>
<span ><?=$messagedatetime;?></span>
</div>
<!-- /.direct-chat-info -->
<div class="direct-chat-text">
<?=$messageBody;?>
</div>
<!-- /.direct-chat-text -->
</div>
<!-- /.direct-chat-msg -->
<?php }else{?>
<!-- Message to the right -->
<div class="direct-chat-msg right">
<div class="direct-chat-info clearfix">
<span ><?=$userName;?></span>
<span ><?=$messagedatetime;?></span>
</div>
<!-- /.direct-chat-info -->
<div class="direct-chat-text">
<?=$messageBody;?>
</div>
<!-- /.direct-chat-text -->
</div>
<!-- /.direct-chat-msg -->
<?php }?>
<?php
endforeach;
}
простая версия представления и div, который я хочу вставить данные в нем:
<div id="chathistory"></div>
Обратите внимание, что модели написаны правильно (я проверил их), и вызов написан правильно, потому что всякий раз, когда я удаляю foreach l oop и добавляю это в мой контроллер :
echo json_encode($history);
и затем консоль записывает данные в мой ajax звонок. Я получаю полную историю чата без проблем. так что я думаю, что что-то не так с foreach l oop и рендерингом html!
ТАКЖЕ: я просмотрел простой чат с веб-приложением на github, и они написали контроллер таким же образом, и он прекрасно работал для них. Так в чем проблема, пожалуйста?