2012-02-20 14 views
1

データベースの既存の基準に基づいて選択ボックスのオプションを動的にロードしようとしています。有益な情報は、品種とタイプを持つペット、名前とタイプを持つ品種、そして犬や猫のようなタイプの3つのクラスがあることです。Symfony2 + Twigでダイナミックチョイスをレンダリングする方法

ペットを編集するときは、Doctrine/Symfony2から2つのドロップダウンが設定されています。

Type [Select One] 
Breed [Select One] 

現在の品種選択リスト犬や猫のすべての品種、私は「タイプ」を選択すると、それはそのタイプに基づいてのみ、リストの品種に品種選択ボックスを強制しているしたいと思います。

Symfonyを使用する前に、これをraw php/javascriptで行っていますが、Symfonyで処理するためのベストプラクティスがあると考えられました。

アドバイスをいただければ幸いです。私は必要な追加情報を提供することができますが、できるだけシンプルに保つことを望みました。

答えて

0

最初の選択時に.change jquery以外の方法が見つからなかった場合は、選択したオプションを使用してajax呼び出しを呼び出し、ターゲット選択を再投入します。

$('#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構文を使用してjavascriptでルートを構築できます。したがって、変数にアクセスすることができます。

+0

偉大な、Davidに感謝します。私はjQueryを使い、.loadを使っていましたが、JSRoutingバンドルをチェックします。 – John

関連する問題