2013-01-02 1 views
1

자동 완성을 사용하는 양식이 있는데 입력 필드에서 데이터를 검색 할 수 있지만 설명 데이터를 가져 오는 방법을 알 수 없습니다. 내가하고 싶은 것은 사용자로부터 값을 얻고 다른 컨트롤러를 호출하여 아약스를 사용하여 추가 정보를 얻는 것입니다 (필요한 경우 더 많은 정보를 얻을 수 있습니다). 감사합니다codeigniter에서 체인 ajax 요청

보기 당신은 자동 완성 "select"이벤트를 사용하여 컨트롤러에서 설명을 가져올 수

function GetAutocomplete($options = array()) 
{ 

    $this->db->select('*'); 
    $this->db->from('test'); 
    $this->db->like('title', $options['keyword'], 'after'); 
    $query = $this->db->get(); 
    return $query->result(); 

} 

답변

0

<script type="text/javascript"> 
$(document).ready(function() { 
$(function() { 
    $("#autocomplete").autocomplete({ 
     source: function(request, response) { 
      $.ajax({ url: "<?php echo site_url('test/suggestions'); ?>", 
      data: { term: $("#autocomplete").val()}, 
      dataType: "json", 
      type: "POST", 
      success: function(data){ 
       response(data); 
      } 
     }); 
    }, 
    minLength: 2 

    }); 
}); 
}); 
</script> 

<label for="title">Job Title</label> 
<input name="title" type="text" id="autocomplete" /> 

<label for="description">Description</label> 
<p id="description" /></p> 

컨트롤러

function suggestions() 
{ 
    $this->load->model('tp_model'); 
    $term = $this->input->post('term',TRUE); 

    if (strlen($term) < 1) break; 

    $rows = $this->tp_model->GetAutocomplete(array('keyword' => $term)); 

    $title_array = array(); 
    $description_array = array(); 


    foreach ($rows as $row){ 
     array_push($title_array, $row->title); 
     array_push($description_array, $row->description); 

} 
    echo json_encode($title_array);  

} 

모델.

$("input#autocomplete").autocomplete({ 
    source: ..., 
    ....., 
    select: function(event, ui) { 
     var id = ui.item.id; 
     $.ajax({ 
      url: description_fetch_url, //another controller 
      data: "descritpion_id="+id, 
      .... 
      success: function(data) { 
       $("#description").html(data) 
      } 
     }); 
    } 
}); 
+0

자동 완성은 jQuery UI 방법입니다. 그것을 사용하려면 jQuery UI를로드해야한다. –

+0

@ user1190992 내가 추가 한 내용이 마음에 들지만 현재 프로젝트에서 구현하는 방법을 모르겠습니다. 이것은 독립 실행 형 스크립트입니까, 아니면 현재 스크립트 내에 추가되어 있습니까? 그렇다면 어디에서 추가됩니까? 나는 아직도 AJAX에 새로운 것이므로 어떤 도움을 주시면 감사하겠습니다. – sfjamrock

+0

@KevinBeal JQuery UI가로드되고 자동 완성 기능이 제대로 작동하므로 자동 완성 값을 가져 와서 다른 Ajax 함수를 실행하는 방법이 필요합니다. – sfjamrock