Я использую много jQuery в проекте.
У меня есть функция JavaScript, которая делает запрос AJAX в контроллер, который возвращает данные в JSON.
Я хотел бы отобразить удобное сообщение для пользователя, сообщив пользователю, что он / она пока не имеет сохраненной информации. Но я смущен как отпутав, как отправить ответ в JSON, поэтому моя функция JavaScript может определить, имеет ли пользовательскую информацию для отображения информации.
Вот моя функция JavaScript:
function latest_pheeds() {
var action = url+"pheeds/latest_pheeds";
$('#pheed-stream').html('<div class="loading"></div>');
$('.loading').append('<img src="'+pheed_loader_src+'" />');
$.ajax({
url:action,
type:'GET',
dataType:'json',
error: function () {
},
success:function(data) {
$('.loading').fadeOut('slow');
$.each(data,function(index,item) {
$('#pheed-stream').append
(
'<div class="pheed" id="'+item.pheed_id+'">'+
'<p><a class="user_trigger" href="users/info/'+item.user_id+'">'
+item.user_id+'</a></p>'+
'<p>'+item.pheed+'</p>'+
'<div class="pheed_meta">'+
'<span>'+item.datetime+' Ago</span>'+
'<span class="cm">'+item.comments+
'<img class="comment_trigger" src="/pheedbak/assets/img/comment.png" title="Click to comment on pheed" onclick="retrieve_comments('+item.pheed_id+')">'+
'</span>'+
'<span>'+item.repheeds+
' Repheeds'+
'<img class="repheed_trigger" src="/pheedbak/assets/img/communication.png" title="Click to repheed" onclick="repheed('+item.pheed_id+')">'+
'</span>'+
'<span>'+
'Favourite'+
'<img class="favourite_trigger" src="/pheedbak/assets/img/star.png" title="Click to make this a favourite" onclick="favourite_pheed('+item.pheed_id+')" />'+
'</span>'+
'</div>'+
'</div>'
);
});
}
});
}
и The The Controller Function Thange Project Required Project в
function latest_pheeds() {
//Confirm if a user is logged before allowing access
if($this->isLogged() == true) {
//load the pheed model for database interaction
$this->load->model('pheed_model');
//load user model
$this->load->model('user_model');
//load comment model
$this->load->model('comment_model');
//store the pheeds to a the $data variable
$data = $this->pheed_model->get_latest_pheeds();
//Load the date helper to calculate time difference between post time and current time
$this->load->helper('date');
//Current time(unix timetamp)
$time = time();
//pheeds
$pheeds = array();
if(count($data) > 0 ) {
foreach($data as $pheed) {
$row['pheed_id'] = $pheed->pheed_id;
$row['user_id'] = $this->user_model->return_username($pheed->user_id);
$row['pheed'] = $pheed->pheed;
$row['datetime'] = timespan($pheed->datetime,$time);
$row['comments'] = $this->comment_model->count_comments($pheed->pheed_id);
$row['repheeds'] = $pheed->repheeds;
$pheeds[] = $row;
}
echo json_encode($pheeds);
$response['response'] = "Ok";
$res[] = $response;
echo json_encode($res)."\n";
}
} else {
}
, он генерирует вывод JSON, но синтаксис сломан, поэтому я не могу прочитать его с помощью JavaScript, Но как только я избавимся от следующего кода из вышеуказанного метода, он работает нормально
$response['response'] = "Ok";
$res[] = $response;
echo json_encode($res)."\n";