I have got jquery post function
jQuery('.more-button').live('click', function(eve){
var page = jQuery(this).attr('id').replace('more-button-','');
loaded_messages += 1;
jQuery.post('http://127.0.0.1/auth_system_1/user_activity/users_picture_number', { loaded_messages : loaded_messages }, function(data) {
jQuery('#ajax_content').append(data.html);
}, 'json');
});
My php function return json (I use Codeigniter):
function users_picture_number()
{
$per_page = (int)$this->input->post('loaded_messages');
$user_id = 3;
$data['images_list'] = $this->user_activity_lib->users_pictures($user_id, $per_page);
$html = $this->load->view('front_end/ajax/ajax_users_pictures', $data);
echo json_encode(array('html' => $html));
}
json return to response html code but in top is shown this line {"html":null}
it return me : 
if I replace this line $html = $this->load->view('front_end/ajax/ajax_users_pictures', $data); with $html = $this->load->view('front_end/ajax/ajax_users_pictures', $data, true); it return

I try to show html which return json in jQuery(‘#ajax_content’)
How to solve this problem ?
To store the html of a view in a var, the correct is indeed the second way:
For test you can change the method to return html and echo the content of $html.