2012-05-13 9 views
0

私は、サブフォームのコレクション - 異なる研究をしている学生 - relation manyToOneを持つフォームを持っています。私は、データベースのスキーマとエンティティとフォームビルダがうまく機能するデータベースを持っています。私は新しい "学習"オブジェクトを追加する方法を知らない。私はどこかの場所からhtmlタグを取得する必要があります - 少なくとも1つの "study:object(クローンを作成する)か、そういったものはありません。ajax呼び出しでサブフォームを生成する

studyオブジェクトには名前と年の2つのフィールドがあるとしましょう生徒のためにそのようなレコード(オブジェクト)がある場合、生成されたフォームの最初の入力は「student [study] [0] [name]」という名前で囲まれています。この周囲のdivを複製し、idとhtmlフォーム要素の名前をそれぞれ変更します。使用可能なライブラリやメソッドはありますか?

これまでのところ、調査記録はありません。残念なことに返されたフォームには、 "study [name]"のような名前の入力があります。このフォームを最初のケースと同様にレンダリングすることは可能ですか? - 私は "student [study] [0] [name]"を意味します。しかし、私は、フォームの小枝のテンプレートを生成手動避けたいのですが - 私はあなたがdata-prototypeを扱うのではなく別のAJAX要求を発行する必要があります

{{ form_widget(form) }} 

答えて

1

を好みます。サブフォームの項目を追加/削除の全体のコンセプトがここで説明されています明らかに

http://symfony.com/doc/current/reference/forms/types/collection.html#adding-and-removing-items

、サブフォームのフィールドを複製するために、いくつかのJS(jQueryが強く推奨される)にする必要があります。

ただし、最初に空または空でないコレクションがある場合、data-prototypeの動作が異なることに注意してください。少なくとも私はこの奇妙な行動に遭遇しました。私が覚えている限り、最初にあなたが{{ form_rest(form) }}と追加のDIVが追加され、data-prototypeという属性がフォームのHTMLで構成されていると言います。 2番目のケースでは、実際のHTML(属性ではない)にID属性 "form_name _ $$ name $$"が追加され、$$ name $$を適切なインデックスに置き換える必要があります。

さて、あなたは本当に見てみる必要があります - 多分...

ホープ、これはビットを助け...このすべては、いくつかの最近のバージョンで修正されていますが、私は確認することはできません

関連する問題