2011-02-26 3 views
0

기본적으로 내 모델에서는 객체가 물리적 위치에 묶여 있어야합니다. 이를 위해 텍스트 필드에서 사용자가 입력 한 키워드를 사용하여 AJAX를 통해 API에서 위치를 가져 오는 중이며 jQuery 자동 완성은 사용자가 권장되는 올바른 위치를 선택할 때 숨겨진 필드를 고유 한 ID로 설정하도록 설정됩니다.검증에 실패한 경우 Symfony 양식 필드를 어떻게 추가 할 수 있습니까?

사용자가 자바 스크립트가 있고 위치를 클릭하면이 모든 것이 좋습니다.

어떤 이유로 든 숨겨진 필드에 값이있는 양식이 제출되면 양식은 API를 쿼리하고 사용자를위한 선택 상자를 표시 할 수있는 모든 것을 사용해야합니다. 에서 값을 선택하십시오.

내가 추가해야하는 코드는 대략 알고 있지만 어디에 바인딩해야하는지에 대해서는 분실했습니다. 도움을 주시면 감사하겠습니다.

답변

0

기본적으로 손님 위젯을 만들어 위치 양식 필드 대신 사용해야합니다. 그런 다음 자바 스크립트를 위젯 렌더링에 추가 할 수 있습니다. sfWidgetChoice 또는 독트린을 확장하면 선택 상자가 기본으로 사용됩니다. 그런 다음 js가 활성화되면 위젯의 js가 필드를 자동 완성으로 다시 작성합니다.

이것을 수행하는 방법에 대한 좋은 예제는 sfFormExtraPlugin을보십시오.

+0

당신이 내 질문을 완전히 읽지 않았는지, 나는 이미 당신이 제안한 모든 것을 끝냈습니다. 지금부터 고민 중입니다. – Steve

+0

내가 말하는 것은. 위젯은 기본적으로 대체 요소 여야합니다. 그런 다음 js (또는 무엇이든)가 활성화 된 경우에만 요소가 자동 완성이되어야합니다. 이것은 진보적 향상이라 불립니다. http://www.alistapart.com/articles/understandingprogressiveenhancement/ – xzyfer

+0

또는 당신은 우아한 퇴화 (http://dev.opera.com/articles/view/graceful-degradation-progressive-enhance/)를 사용할 수 있습니다. 그것은 기본적으로 (예 : 자동 완성) 다음 기능을 지원하지 않는 경우 다시 (예 : javascript) 가을 수 있도록 최선을 다하고있다. 어느 쪽이든,이 모든 것이 위젯의 ​​일부가되어야합니다. 그래서 sfFormExtraPlugin을 살펴 보라고 제안 했으므로 위젯에서 점진적 향상 기능을 사용하는 좋은 예입니다. – xzyfer