2010-01-14 2 views
2

내 문제의 첫 번째 부분에 대한 도움을 받았습니다. here 두 번째 문제를 언급하는 것을 잊어 버린 분. 사용자가 autocomplete 필드에서 값을 선택하면 vaules ID를 숨겨진 필드에 채워서 PHP로 전달하여 데이터베이스에 삽입 할 수 있습니다. 여기 JQuery 자동 완성 숨겨진 필드

내가 달성하기 위해 노력하고 있습니다 무엇의 고장입니다 :

  1. 사용자는 자동 완성 필드에서 장소를 선택합니다.
  2. 장소를 선택하면 자동 완성 필드 아래에 장소 전화, 주소 및 웹 사이트가 표시됩니다. 데이터베이스의 레코드 ID는 값으로 숨겨진 필드에 전달됩니다.

검색했지만 아무것도 찾을 수 없습니다. 누군가 나를 올바른 방향으로 이끌 수 있습니까?

감사

답변

6
난 당신이 표준 자동 완성 플러그인을 사용하고 있으리라 믿고있어

: 당신이 당신의 HTML이있는 경우 http://docs.jquery.com/Plugins/Autocomplete

가 :

<input type='text' id='foo' /> 
<input type='hidden' id='bar' /> 

당신이로 사용하려는 것 귀하의 자바 스크립트 :

$(document).ready(
function(){ 
    var data = "1,address 1,phone 1|2,address 2,phone 2".split('|'); 
    $("#foo").autocomplete(data,{formatItem:function(item){ 
     return item[0].split(',').slice(1).join(' ');} 
    }).result(function(event,item){ 
     $("#bar").val(item[0].split(',')[0]); 
    }); 
}); 

에 formatItem 옵션은 소스 데이터에서 ID를 꺼내 추가

  1. : 당신이하고있는 모자는 이것이다.
  2. 에 결과 처리기를 추가하면 숨겨진 필드가 ID로 설정됩니다.

이 정보가 도움이되는지 알려주세요.

+0

@ Jieren, 오늘 나중에 시도해보고 결과를 알려 드리겠습니다. 감사. – mrdthomas

2

여기에 약간의 도움으로, 나는 더 간단한 해결책

$("#fieldA").autocomplete({ 
    source: '<%=Url.Action("functionName", "ControllerName") %>', 
    select: function(e,ui) { $('#fieldB').val(ui.item.objectName) }, 
    }); 

fieldA 소스 파일에서 자동 완성을하지를 발견,뿐만 아니라 내 생각이 벽돌 벽에 부딪 데. 나는 컨트롤러 명의 내부 FUNCTIONNAME 소요 ASP.net MVC를 사용하고 있습니다 (물론 당신은 당신이뿐만 아니라 원하는 웹 링크의 URL을 붙어 있었다). 웹 페이지는 개별 항목 필드로 세분화 된 행 목록을 반환합니다. 유일한 제한은 반환 된 필드 중 하나에서 ""이라는 것입니다. 그러면 select를 사용하면 ui.item 객체의 ui.item 객체에서 다른 모든 필드 (ui.item의 끝에있는 objectname)를 분리하고 필요한 수만큼 필드에 넣을 수 있습니다. "을 ui.item.value은 자동 완성 필드를 자동으로 채 웁니다.