2012-02-20 2 views
1

데이터베이스의 기존 기준에 따라 선택 상자의 옵션을 동적으로로드하려고합니다. 유용한 정보는 품종과 유형이있는 애완 동물, 이름과 유형이있는 품종, '개'또는 '고양이'와 같은 유형 인 3 개의 클래스가 있다는 것입니다.Symfony2 + Twig로 동적 선택을 렌더링하는 방법

애완 동물을 편집 할 때 Doctrine/Symfony2에서 두 개의 드롭 다운이 있습니다.

Type [Select One] 
Breed [Select One] 

현재 개와 고양이의 모든 품종, 내가하고자하는 품종 선택 목록은 '형식'을 선택하고 그 힘을 그 유형에 따라 만 나열 품종에 대한 품종 선택 상자를합니다.

Symfony를 사용하기 전에 원시 PHP/javascript로이 작업을 수행했습니다. Symfony에서 처리하는 것이 가장 좋은 방법이라고 생각했습니다.

모든 조언을 주시면 감사하겠습니다. 필요한 추가 정보를 제공 할 수 있지만 가능한 한 간단하게 유지하려고합니다.

답변

0

첫 번째 선택에서 .change jquery 이외의 다른 방법을 찾지 못했습니다. 선택한 옵션을 사용하여 아약스 호출에서 대상 선택을 다시 채 웁니다.

$('#Your_source_select').change(function() 
{ 
    $.ajax({ 
    type: 'POST', 
    url: Routing.generate('AJAXDevisOnduleurOptions', { onduleurId: $('#Your_source_select').val() }), 
    success: function(msg){ 
     $('#Your_target_select').children().remove().end().append(msg); 
    } 
}); 
}); 

Your_source/target_select는 엔티티 필드입니다. 하지만 그 부분을 얻은 것 같습니다.

FOSJSRoutingBundle =>https://github.com/FriendsOfSymfony/FOSJsRoutingBundle 을 사용하면 자바 스크립트에서 twig 구문을 사용하여 경로를 만들 수 있습니다. 따라서 변수에 액세스 할 수 있습니다.

+0

대단히 감사합니다. David. 나는 jQuery와 함께 갔고 .load를 사용했다.하지만 JSRouting 번들을 살펴볼 것이다. – John