2011-08-12 2 views
2

Jquery 자동 완성을 사용하면 처음 세 글자를 입력 할 때 모든 관리자의 전체 목록을 얻을 수 있습니다. 내 프로젝트 컨트롤러에서 다음 코드를 가지고있다.목록 하나의 레코드 자동 완성

def project_list 
    list=Project.all.map{|i|i.manager_user_id} 
    arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json 
    render :json =>arr 
    end 

나는 잘못했다. 내가에만 표시 'Deshawn 암스트롱'해야한다 '암'에 입력 대신 내가 전체 목록

를 표시되고 있어요 위의 그림에서 Application.js

function log(message) { 
     $("<div/>").text(message).prependTo("#log"); 
    } 

    $("#tags").autocomplete({ 
     minLength: 2, 
    source: function(request, response) { 
     $.ajax({ 
      url: "/managerlist", 
      dataType: "json", 
      data: { 
       style: "full", 
       maxRows: 12, 
       term: request.term 
      }, 
      success: function(data) { 
       var results = []; 
       $.each(data, function(i, item) { 
        var itemToAdd = { 
         value: item, 
         label: item 
        }; 
        results.push(itemToAdd); 
       }); 
       return response(results); 

      } 
     }); 
    } 
}); 

Example

편집 됨 :

<p> 
    <%= f.label :project_name %><br /> 
    <%= f.text_field :project_name %> 
</p> 

<p> 
    <%= f.label :manager_user_id %><br /> 
    <%= f.text_field :manager_user_id, :id => "term"%> 

</p> 

위의 manger 목록 페이지는 다음과 같습니다. t는 양식을 포함합니다. 당신이 나에게 설명했던 것에서, 나는 위에서 한 것처럼 페이지에 var '용어'를 넣어야한다고 생각하고 있습니까?

답변

1

필터링 결과가 request.term입니까? 그렇지 않은 경우 관리자 전체 목록이 일치하는 문자열로 반환됩니다.

Request.term을 url: "/managerlist" (으)로 보내야하며 그 결과로 용어로 필터링 된 결과가 반환되어야합니다.

아약스에서 보낸 URL은 다음과 같습니다. /managerlist?term=arm. var term 요청을 받아 목록을 필터링하십시오. 그게 루비로 작성된 managerlist 페이지에서해야 할 것입니다 (저는 믿습니다).

사실, 무슨 말인지하면 term 값으로 필터링 된 데이터를 반환해야합니다 루비 페이지의 list은 다음과 같습니다

def manager_list 
list=Project.all.map{|i|i.manager_user_id} 
arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json 
render :json =>arr 
end 

list 내가 요청을 사용하고 term

+0

에 의해 필터링 된 값을 포함 할 만합니다. 기간. maxRows 이후에 배치했습니다. 맞지? – David

+1

@Djj'request.term'은 url : 매개 변수로'url : "/ managerlist"'로 보내집니다. '/ managerlist' 페이지에서 autocomplete로 보내지는 레코드를 정렬합니다. 지금은 아무 것도하지 않습니다. –

+0

자바 스크립트를 처음 사용하는 경우 어떻게해야합니까? jquery Ui 웹 사이트에서 자동 완성을 수행하고이를 적용했습니다. 이것이 내가 혼란스럽게 생각하는 유일한 부분입니다. – David

관련 문제