コレクションによって作成されたフィールドセットに ID を設定することはできますか? いくつかのエンティティ (ユーザー、アドレス、添付ファイルなど) があり、ユーザー エンティティには、コレクションで作成されたフィールドセットがいくつかあります。したがって、ユーザーは複数のアドレスまたは添付ファイルを持つことができます。私のコレクションは次のように構築されています。
$addressFieldset = new AddressFieldset($serviceManager);
$this->add(array(
'type' => 'Zend\Form\Element\Collection',
'name' => 'addresses',
'options' => array(
'label' => 'Choose address for user',
'count' => 1,
'should_create_template' => true,
//'template_placeholder' => '__placeholder__',
'allow_add' => true,
'target_element' => $addressFieldset
),
));
$this->add(array(
'name' => 'addAddress',
'type' => 'button',
'options' => array('label' => 'Add Address',
),
));
$this->get('addAddress')->setAttribute('onclick', 'return add_address()');
私の問題は、userfieldset に複数のコレクションがあることです。したがって、いくつかのアドレスを動的に追加する場合 (使用する例: http://zf2.readthedocs.org/en/latest/modules/zend.form.collections.html )、例には次の JavaScript があります。
function add_address() {
var currentCount = $('form > fieldset > fieldset').length;
var template = $('form > fieldset > span').data('template');
template = template.replace(/__index__/g, currentCount);
$('form > fieldset').append(template);
return false;
}
しかし、私の問題は、この例を使用すると、添付ファイルの下にもアドレスフィールドセットが追加されることです。私が欲しいのは次のようなものです:
function add_address() {
var currentCount = $('form > #addressFieldset > fieldset').length;
var template = $('form > #addressFieldset > span').data('template');
template = template.replace(/__index__/g, currentCount);
$('form > #addressFieldset').append(template);
return false;
}
これで、addressFieldset にしかアクセスできませんが、AddressFieldset に ID を設定するにはどうすればよいですか? 私のツリーは次のようになります。
<form>
<fieldset id="addressFieldset">
<legend>Choose addresses</legend>
<fieldset>
//Data
</fieldset>
</fieldset>
<fieldset id="attachmentFieldset">
<legend>Choose attachments</legend>
<fieldset>
//Data
</fieldset>
</fieldset>
</form>
フィールドセットに ID を設定する方法がわかりません。助けてください