我有jquery post功能
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');
});
我的php函数返回json(我使用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返回响应html代码,但在顶部显示此行{"html":null}
它返回给我:
如果我将此行$html = $this->load->view('front_end/ajax/ajax_users_pictures', $data);
替换为$html = $this->load->view('front_end/ajax/ajax_users_pictures', $data, true);
,则返回
我尝试在jQuery中显示返回json的html('#ajax_content')
如何解决这个问题?
答案 0 :(得分:1)
要在var中存储视图的html,正确的第二种方式是正确的:
$html = $this->load->view('front_end/ajax/ajax_users_pictures', $data, true);
对于测试,您可以更改方法以返回html并回显$ html的内容。
答案 1 :(得分:0)
您正在尝试发送JSON和普通HTML。在PHP中,您的$html
变量为空。检查返回值的函数。您必须选择是否要传输JSON或HTML。你在ajax调用中将你的内容类型设置为json,所以请坚持下去,不要发送HTML。
答案 2 :(得分:0)
我遇到了类似的问题,结果是我在不使用htmlentities功能或类似功能的情况下打印了一些关键字符(重音字符)。