2012-02-12 111 views
0

返回的HTML數據的問題我有jQuery的崗位職能獲取從JSON

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(我用笨):

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}

還給我:enter image description here

如果我$html = $this->load->view('front_end/ajax/ajax_users_pictures', $data, true);替換該行$html = $this->load->view('front_end/ajax/ajax_users_pictures', $data);其返回

enter image description here

我儘量表現HTML中返回JSON jQuery的( '#ajax_content')

如何解決這個問題呢?

回答

1

要保存視圖的HTML的變種,正確的確實是第二種方式:

$html = $this->load->view('front_end/ajax/ajax_users_pictures', $data, true); 

用於測試你可以改變返回HTML的方法和回聲的$內容的HTML。

+0

女巫回聲它返回HTML沒有null,但如果我嘗試通過$ html將其添加到json返回null? – Viktors 2012-02-12 13:04:15

+0

添加'header('Content-type:application/json');'在發送php文件的響應之前。也許這有幫助。 – 2012-02-12 13:08:32

0

您正在嘗試發送JSON和普通的HTML。在PHP中,您的$html變量爲空。檢查正在返回值的函數。你必須選擇是否要傳輸JSON或HTML。你在你的ajax調用中將你的內容類型設置爲json,所以請堅持下去,不要發送HTML。

0

我有一個類似的問題,事實證明我打印一些關鍵字符(重音字符),而不使用htmlentities功能或類似。