2011-07-18 69 views
2

我無法使用ajax post函數從我的控制器返回數據。這裏發生的是用戶將輸入一個樣式編號,將該編號提交給控制器。控制器抓取提交的值,查詢數據庫並將結果返回給控制器,然後控制器返回一個數組,然後將其編碼爲json。但我不斷收到500內部服務器錯誤?用Codeigniter POST'ing JSON返回500錯誤

這是我的控制器

//return schools based on style id 
public function search() { 
    $input = json_decode($this->input->post('obj')); 
    $style_id = $input['style_id']; 
    $parent_id = $input['parent_id']; 
    $data = array(); 
    if ($q = $this->page_model->search_results($style_id, $parent_id)) { 
     $data = $q; 
    } 
    echo json_encode($data); 
} 

這是我的模型

//get all entries 
function search_results($style_id, $parent_id) { 
    $options = array(
     'Style' => $style_id, 
     'Parent_ID' => $parent_id 
    ); 
    $this->db->select('*'); 
    $this->db->from('pages'); 
    $this->db->join('entry', 'pages.Page_ID = entry.Parent_Page_ID', 'inner'); 
    $this->db->where($options); 
    $q = $this->db->get(); 

    if ($q->num_rows() > 0) { 
     return $q->result(); 
    } 

} 

下面是我的javascript

//dress style search 
$($searchBtn).click(function(event) { 
    var style_id, 
     parent_id, 
     obj = {}; 
    //get the value of the input fields 
    searchVal = event.currentTarget.previousSibling.value; 
    parentID = event.currentTarget.parentElement.childNodes[3].value; 
    //The object to be passed to the controller 
    obj = { 'style_id' : searchVal, 'parent_id' : parentID }; 
    //POST the values in json notation, return the search results in json notation 
    $.post(base_url + 'index.php/page/search', 
      obj, 
      function(data) { 
       console.log(data); 
      }, 
      'json'); 
    return false; 
}); 

BASE_URL = HTTP://本地主機:8888/lexsreg

順便說一句 - 如果我評論出來返回false,我得到一個json字符串從我的控制器回顯。

在此先感謝!

回答

0

那麼,第一步是確保你加載了page_model。然後,我會確保你在where子句中找到正確的列 - 你需要通過<table-name>.來識別那些列嗎?

然後基本的CI調試開始於log_message:請致電log_message('DEBUG', $this->input->post('obj'));後跟log_message('DEBUG', json_decode($this->input->post('obj')));

+0

我自動加載我的模型,不知道該log_message功能,我會嘗試了這一點thxs –

+0

想通了,我不得不包括CSRF令牌... D'哦! –