2012-12-07 2 views
0

3 개의 필드를 포함하는 양식이 있습니다. 각 필드는 jquery 자동 완성을 사용하여이 모든 필드를 자동 완성합니다. 그래서이 코드codeigniter 및 mysql을 사용하여 여러 입력에 자동 완성을 추가하는 방법

HTML

<input type='text' class='completeme' name='name'/> 
<input type='text' class='completeme' name='job'/> 
<input type='text' class='completeme' name='lasname'/> 

JS

$('input.completeme').each(function() { 
    $(this).autocomplete({ 
      source: function(request, response) { 
       $.ajax({ url: '<?=base_url()?>patients/autocomplete', 
       data: { 'term': this.value}, 
       dataType: "json", 
       type: "POST", 
       success: function(data){ 
        response(data); 
       } 
      }); 
     }, 
     minLength: 2 
}); 
}); 

을 쓰고 모두 뷰에 추가하고, 컨트롤러 자동 완성과 컨트롤러라는 이름의 patients.php을 만들어

코드

function Autocomplete(){ 
$this->load->model('Autocomplete'); 
    $term=$this->input->post('term'); 
    if(sizeof($term) > 2){  
     $options=array('table'=>'patients','field'=>'patient_name','term'=>$term); 
     $q=$this->Autocomplete->GetAutocomplete($options); 
     foreach($q as $q)$json[]=$q->patient_name; 
     echo json_encode($json); 
} 

지금 내 문제가

  1. 자사 작동하지 : D ... 내가 그렇지 후 모든 값을 나던 불을 지르고 POST 요청을 검사 할 때.
  2. 자동 완성 요청에서 검색 용어와 함께 필드 이름도 전달할 수 있습니까?
  3. 이 더 깨끗한 방식으로 수행 할 수있는 기존의 codeigniter 도우미/사용자 지정 lib가 있습니까?

덕분에

+0

페이지에 오류가 있습니까? –

+0

실제 화격자 스크린 샷을 게시 할 수 있습니까? 올바른 페이지에 게시 했습니까? (404 찾을 수 없습니까?) –

+0

옙 올바른 URL 및 오류가 있지만 아직 내 문제는 $ .ajax 해당 값과 함께 iput 이름을 전달하려면 원하는 게시 페이지에, 나는 "데이터 : {term : this.term, 이름 : $ (this) .attr ('name')}"을 시도했으나 용어 var 만 보냈다. – Zalaboza

답변

0

작정 난 당신이 게시 올바른 URL을 가지고 있다고 가정합니다.

$('input.completeme').each(function() { 
    $(this).autocomplete({ 
      source: function(request, response) { 
       $.ajax({ url: '<?=base_url()?>patients/autocomplete', 
       data: { 'term': this.value}, <--you should not get the value here 
       dataType: "json", 
       type: "POST", 
       success: function(data){ 
        response(data); 
       } 
      }); 
     }, 
     minLength: 2 
}); 
}); 

이 같은해야한다 : 여기에 내가 당신의 코드를보고 문제의

또한
$('input.completeme').each(function() { 
    var term = this.value; //get the value here 
    $(this).autocomplete({ 
      source: function(request, response) { 
       $.ajax({ url: '<?=base_url()?>patients/autocomplete', 
       data: { 'term': term}, 
       dataType: "json", 
       type: "POST", 
       success: function(data){ 
        response(data); 
       } 
      }); 
     }, 
     minLength: 2 
}); 
}); 

하면 반환되는 json으로 올바른 형식으로되어 있는지 확인은 그래서 JQuery와 UI 그것을 읽을 수 있습니다.

+0

옙 내가 올바른 URL을 가지고, 내 문제는 내가 $ .ajax POST 페이지에서 해당 값과 함께 iput 이름을 전달하려면 "데이터 : {term : this.term, 이름 : $ (this) .attr ('name')} "하지만 term var 만 보냅니다. 단서를 고치는 방법이 있습니까? – Zalaboza

관련 문제