2009-07-11 4 views
1

의 jQuery v1.2.6jQuery Autocompleter에서 POST를 어떻게 사용합니까?

jQuery.autocompleter 플러그인 v1.1pre 내가 '유형 : "POST"'로 제출할 수 아니다

(jQuery의 웹 사이트에서) 다시 내 웹 서비스에. 나는 그것이 자동 완성기에 의해 인식되도록 할 수 없다. 생각?

아래의이 코드는 "q"쿼리를 검색하는 한 올바르게 작동합니다. 하지만, 더 많은 매개 변수를 전달하여 앞으로이 고급 기능을 사용하고 싶습니다. 자동 완성 기능을 사용하여 다시 게시하는 방법에 대해 고맙게 생각합니다.

나는 extraParams 옵션을 알고 있습니다. 그러나 이것들은 GET 또는 POST를 통해 제출되는 추가 매개 변수입니다 (POST가 작동 할 수있는 경우). 그것은 POST로 제출하도록 변경하지 않습니다.

$(function() { 
    $('#searchBox').autocomplete(
     "/services/college.asmx/lookupColleges", 
     { 
      delay: 5, 
      minChars: 1, 
      matchSubset: 1, 
      matchContains: 1, 
      cacheLength: 10, 
      autoFill: false, 
      dataType: 'json', 
      parse: function(data) { 
       var rows = new Array(); 
       for (var i = 0; i < data.length; i++) { 
        rows[i] = { 
         data: data[i] 
         , value: data[i].Data 
         , result: data[i].Name 
        }; 
       } 
       return rows; 
      }, 
      formatItem: function(row, i, n) { 
       return row.Name; 
      } 
     }).result(function(event, row) { 
      processSelection(this, row.Data); 
     }); 
}); 

아래 코드 샘플에서 설명한 것처럼 POST 옵션을 추가하려고 시도했습니다. 그러나 여전히 GET으로 제출합니다.

delay: 5, 
minChars: 1, 
matchSubset: 1, 
matchContains: 1, 
cacheLength: 10, 
autoFill: false, 
dataType: 'json', 
type: 'POST', 

도움을 주시면 감사하겠습니다.

감사합니다.

추신 :이 문서는 문서화되지 않았으므로 시행 착오를 파악하기위한 피타 (PITA)입니다. 방화범에 감사드립니다.

당신은 내가 참고있는 것들 :

  • 자동 완성은 기본적으로 JSON을 처리 할 수 ​​없습니다있는 웹 서비스에서 다시 JSON을받는, 그래서 난 내 자신의 배열로 구문 분석해야합니다.
  • 이제 사용자 지정 배열 개체를 다시 전달하므로 표시 목적으로 새 배열 개체를 처리하려면 formatItem을 덮어 써야합니다.
  • 그리고 마지막으로 돈을 쐈다. 사용자가 행 (마우스 클릭 또는 TAB 또는 ENTER 키)을 선택한 후 그 행에 대한 추가 데이터를 처리하려고합니다. result() delegate를 사용하여이 작업을 수행합니다.

나는 위의 코드가 미래의 다른 사람들을 도울 수 있기를 정말로 바라고 또한 자동 완성기를 이해하기를 바랍니다. 그럴 경우 투표 업을 해주십시오.

팁 : data [i] .Data 및 data [i]. 속성 이름은 JSON 속성 이름입니다.

답변

2

현재 (자동 완성 1.1pre) 플러그인의 코드를 변경하지 않고 게시 할 수있는 방법이 없습니다.

방금 ​​쿼리 문자열을 제출했으나 방금 제출했습니다. 대답 해 주셔서 감사합니다. 투표를 올렸습니다.

1

''모든 ''jquery ajax 호출의 기본값을 게시로 설정 한 다음 원하는 모든 스크립트에서 무시할 수 있습니다. 오버라이드 아마 코드의 상단이 배치하려고 ... 물론이 작동됩니다

$.ajaxSetup({ 
    type: 'POST' 
}); 

당신은 정상 $.ajax/$.post/$.get 옵션에 대한 기본값을 설정합니다 $.ajaxSetup() 전화를 사용할 수 있습니다. 도움이되기를 바랍니다.

+0

이번 주말에이 작업을 다시 시도해 볼 것입니다. (지금은 GET을 사용하고 있기 때문에). 알려 드리겠습니다. – eduncan911

+0

작동하지 않았습니다. autocompleter는 jQuery의 최신 버전에 포함될 예정이며 내부 작동 변경에 대해 이야기합니다. AJAX를 지원하기를 바랍니다. 방금 쿼리 스트링을 사용하도록 변경했습니다. – eduncan911

관련 문제