2013-08-21 86 views
0

這是我第一次嘗試ajax,我對CI也是一個新手。我已經建立了我的MVC,因爲它在下面,我正在使用一個小書籤來調用js函數。我知道該程序的書籤部分正在工作,因爲我可以硬編碼$('#source').val('Update Summary ID'),並讓它正確更新我的字段。當我嘗試使用AJAX請求時,我沒有得到任何迴應。我使用螢火蟲來檢查迴應,並且看到沒有錯誤。讓我知道,如果我已經正確地設置了所有東西,還有什麼我錯過了。謝謝!模型沒有反應。 Codeigniter Ajax請求

控制器:

public function updatePajeFields(){ 
     $data['id'] = $this->mAutoPAJE->updatePajeFields(); 
     header('Content-type: application/json; charset=utf-8'); 
     echo json_encode($data['id']); 

    } 

型號:

 public function updatePajeFields(){ 
     $row = $_POST['row']; 
     $this->db->select('*'); 
     $this->db->from('pajeV2test'); 
     $this->db->where('paje_id', $row); 

     $query = $this->db->get(); 
     return $query->result_array(); 
     } 

的javascript:

$(document).ready(function() { 

     var data = { 
      'row' : prompt("What is the ID? v4") 
     } 
    $.ajax({ 
     url: 'http://myurl', 
     data: data, 
     type: 'POST', 
     success: function(responses) { 
      $('#ticket').val(responses.researched_by); 
      $('#source').val(responses.researched_by); 
     } 
    }); 
}); 
+0

你在firebug中看到的ajax調用的響應是什麼? –

+0

迴應爲空。我嘗試了其他一些結果不盡相同的東西。我想確保通話首先將它傳送給控制器,這樣我只需在該功能中添加一個基本回顯。直到我添加'dataType:'jsonp''後,回聲才起作用。有了這個雖然我的POST變量不會傳遞給模型。這有助於解決問題嗎? – vizyourdata

+0

進行調試我建議你從控制器中刪除json頭文件,將jquery中的數據類型設置爲「text」,並將console.log(response)放入你的成功回調函數中,現在如果你設法在控制器中獲得回聲, var_dump($ row)'在你的模型中,我還建議你使用CI的輸入類來檢索像這樣的'$ row = $ this-> input-> post('row')' –

回答

0

我認爲result_array會返回一個數組,這樣你就需要像$results = $query->result_array(); $return $results[0];。或者,您可以使用返回單行的$query->row();

Query Results - CodeIgniter docs

+0

謝謝!我試過'返回$ query-> row();'沒有結果。 – vizyourdata

+0

您可以在'$ this-> db-> get();'line之前嘗試'file_put_contents('log.txt',$ this-> db - > _ compile_select());這應該給你它正在運行的確切查詢。然後您可以查看查詢是否是問題(例如參數不正確)或數據本身。 – Technoh

+0

我在哪裏可以訪問log.txt輸出? – vizyourdata