2011-07-12 9 views
0

コントローラからビューにデータを戻す方法を教えてください。CodeQuickerのAjaxとjQuery、データの返信方法は?

は、私は次の検索コントローラを持っていると言う:

function search() 
{ 
$search_text = $this->input->post('company'); 

$data['found_companies'] = $this->Company->get_companies_by_name($search_text); 
$data['page_title'] = 'Search'; 
$this->load->view('head', $data); 
$this->load->view('pages/after_search', $data); 
$this->load->view('footer'); 
} 

私はAjaxのリターンデータとして渡しますどのように、$data['found_companies']にモデルからのモデルからの検索結果を取り戻しますか? Ajaxリクエスト(jQueryを使ってすなわち)と

答えて

2

なぜ

function search() 
    { 
    $search_text = $this->input->post('company'); 

    $data['found_companies'] = $this->Company->get_companies_by_name($search_text); 
     /* 
     $data['page_title'] = 'Search'; 
     $this->load->view('head', $data); 
     $this->load->view('pages/after_search', $data); 
     $this->load->view('footer'); 
     */ //Remove these part as it will display your view 
    return json_encode($data['found_companies']); 

    } 

$.post('search',myData,function(result){ 
    console.log(result); //found_companies 
}); 
+0

ありがとうそれについてヴィドが、私はいくつかの有線結果を得る:コンソールは、全体のページのソースを私に戻っています!検索結果は検索フォームのdiv内に表示されます...なぜそれがわかりますか、どのように結果だけを得るのですか? – ilyo

+0

私はCakePHPを使用しており、 '$ this-> autoRender = false'を使ってページを表示しない方法があります。おそらくCodeIgniterには同じ種類のものがあります:) divに結果を表示するには '$( 'myDiv')を使います。html(result);' – Franquis

+0

私は 'console.log(result);'を使います。 'result'はページ全体のコードです(コピー貼りページのソースコードのように)、どうすれば結果が得られますか? – ilyo

0

CI ajax呼び出しでは、情報を含むJSONオブジェクトをエコーし​​、ビューをロードしないでください。ビューはページコントローラーによってページロード時にロードされる必要があります。 ajaxのcontollersは別々にする必要があります。

ここhttp://geekhut.org/2009/06/how-to-codeigniter-jquery-json/

関連する問題