2016-12-09 20 views
1

を形成するために、私は、現時点ではこれを持ってZendのフレームワーク2の追加削除ボタンがフィールド

$this->add(array(
    'type' => 'Zend\Form\Element\Collection', 
    'name' => 'attachments', 
    'options' => array(
     'count' => 1, 
     'should_create_template' => true, 
     'allow_add' => true, 
     'allow_remove' => true, 
     'target_element' => new AttachmentFieldset($this->entityManager) 
    ) 
)); 

私は隣に除去]ボタンを追加したいです各フォームフィールドには、添付ファイルを削除することもできます。これどうやってするの?

+0

こんにちは!あなたの質問は正式な文書(https://framework.zend.com/manual/2.4/en/modules/zend.form.collections.html#adding-new-elements-dynamically)に適切な回答があります。あなたがそれを見たことがないか、さらに具体的な質問があるので、私たちに詳細を追加して、より多くのものを手伝ってください! –

答えて

0

コレクションを使用する場合、allow_addまたはallow_removeを指定しても、コレクションには任意の数の要素(最小値はcount)が含まれていることがZFに伝えられません。

フォームにコレクションを追加した後、クリックすると、テンプレートに基づいて別の要素を追加するための関数を呼び出すボタンも追加する必要があります。

<button onclick="return add_category()">Add a new category</button> 

<script> 
    function add_category() { 
     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; 
    } 
</script> 

、削除ボタンを追加したテンプレートにボタンを追加するには、上記機能を変更、および削除機能を作成するには::マニュアルから

<script> 
    function add_category() { 
     var currentCount = $('form > fieldset > fieldset').length; 
     var template = $('form > fieldset > span').data('template'); 
     template = template.replace(/__index__/g, currentCount) 
          .replace('</fieldset>', '<button onclick="return remove_category(this)">Remove</button></fieldset>'); 
     $('form > fieldset').append(template); 

     return false; 
    } 
    function remove_category(el) { 
     $(el).parent().remove(); 
    } 
</script> 
関連する問題