【问题标题】:How to add special span to addDisplayGroup fieldset如何将特殊跨度添加到 addDisplayGroup 字段集
【发布时间】:2015-03-04 12:05:27
【问题描述】:

我应该在这段代码中修改什么。

$this->addDisplayGroup($groupInputs, 'group_'.$i, 
                    array('attribs'=>array('class'=>'fieldset_group')));

在字段集中添加新的 html 标签,如:

<span class="delete_fieldset" onclick="foo()">[X]</span>

如果可能的话:

 <span class="delete_fieldset_$i" onclick="foo($i)">[X]</span>

【问题讨论】:

    标签: php html zend-framework zend-form


    【解决方案1】:

    另一种方法是像这样使用javascript:

    var attr_fieldset = "";
    var num_fielset = 0;
    var elt_fieldset = null;
    
    // get all fieldsets
    var list_fieldset = document.getElementsByClassName('fieldset_group');
    
    for (var i = 0; i < list_fieldset.length; i++) {
        // to get one fieldset
        elt_fieldset = list_fieldset[i];
        // to get $i 
        attr_fieldset = elt_fieldset.id.split("_");
        num_fielset = attr_fieldset[1]; // (num_fielset = $i)
    
        // create span element
        var new_span = document.createElement("span");
        new_span.className = 'delete_fieldset_' + num_fielset;
        new_span.setAttribute('onclick', 'foo(' + num_fielset + ')');
        new_span.innerHTML = '[X]';
        // span element is the first child of the fieldset
        elt_fieldset.insertBefore(new_span, elt_fieldset.firstChild);
    }
    

    如果要在字段集的其他元素之后使用 span 元素,请替换

    elt_fieldset.insertBefore(new_span, elt_fieldset.firstChild);
    

    通过

    elt_fieldset.appendChild(new_span);
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      我不确定是否理解您的问题。
      可能这段代码可以帮助你:

      // add a Zend_Form_Element_Note (Zend 1.12)
      $newtag = new Zend_Form_Element_Note('span_elt', array('value' => '<span class="delete_fieldset_'. $i .'" onclick="foo(' . $i . ')">[X]</span>'));
      
      // Remove decorators to have only span tag
      $newtag->removeDecorator('HtmlTag');
      $newtag->removeDecorator('Label');
      
      // add $newtag in your code
      $this->addDisplayGroup(array_merge(array($newtag), $groupInputs), 
                             'group_'.$i, 
                             array('attribs'=>array('class'=>'fieldset_group')));
      

      希望对你有帮助

      【讨论】:

      • Zend_Form_Element_Note 在我的项目中找不到:
      • 对不起,如果我找到其他解决方案,我会提出。祝你好运。
      猜你喜欢
      • 2016-12-29
      • 2011-09-26
      • 2012-09-13
      • 1970-01-01
      • 2021-08-02
      • 2020-11-12
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多