0

2つの要素をdivタグでカプセル化したい、このようにしたい

 <div>
    <span id="mailRecepientName2-label">
      <label class="elementTitle required" for="mailRecepientName2">اسم المستفيد</label>
    </span>
    <span>
       <input id="mailRecepientName2" type="text" value="" name="mailRecepientName2">
    </span>
    <span id="mailRecepientNote2-label">
        <label class="required" for="mailRecepientNote2">البيـــــــان</label>
    </span>
    <span class="largeText">
      <input id="mailRecepientNote2" type="text" value="" name="mailRecepientNote2">
   </span>
    <a class="ico_lable_remove" data-recepeintcount="2" name="deleteNewRecepient" href="javascript:void(0)"></a>
 </div>

私はこのように作ります、

    $mailRecepientName = new Zend_Form_Element_Text("mailRecepientName" . $id);
    $mailRecepientName->setRequired(true)->setLabel('اسم المستفيد')->setDecorators(array(
            'ViewHelper',
            'Errors',
            array(array('data' => 'HtmlTag'), array('tag' => 'span')),
            array('Label', array('tag' => 'span'))
        ););

    $mailRecepientNote = new Zend_Form_Element_Text("mailRecepientNote" . $id);
    $mailRecepientNote->setRequired(true)->setLabel('البيـــــــان')->setDecorators(array(
            'ViewHelper',
            'Errors',
            array(array('data' => 'HtmlTag'), array('tag' => 'span')),
            array('Label', array('tag' => 'span'))
        ););
      );

これらの要素は両方とも、同じフィールドセットのグループに属しています。どうすればそれらをdiv内にカプセル化できますか?

4

1 に答える 1

0

div オープンと div クローズ用に独自のフォーム要素を作成してみることができます。

マイアプリ/フォーム/エレメント/Divopen.php

require_once 'Zend/Form/Element/Xthml.php';
class MyApp_Form_Element_Divopen extends Zend_Form_Element_Xhtml {

public $helper = 'formDivopen';
}

MyApp/フォーム/要素/Divclose.php

require_once 'Zend/Form/Element/Xthml.php';
class MyApp_Form_Element_Divopen extends Zend_Form_Element_Xhtml {

public $helper = 'formDivopen';
}

MyApp/View/Helper/FormDivopen.php

require_once 'Zend/View/Helper/FormElement.php';
class MyApp_View_Helper_FormDivopen extends Zend_View_Helper_FormElement {
public function formDivopen($name, $value = null, $attribs) {
$info = $this->_getInfo($name, $value, $attribs);
extract($info);
$xhtml = '<div'
    . ' name="'. $this->view->escape($name) . '"'
    . ' id="'. $this->view->escape($id) . '"'
    . ' value="'. $this->view->escape($value) . '"'
    . $this->_htmlAttribs($attribs)
    . '>';
return $xhtml
}
}

最後に: MyApp/View/Helper/FormDivclose.php

require_once 'Zend/View/Helper/FormElement.php';
class MyApp_View_Helper_FormDivclose extends Zend_View_Helper_FormElement {
public function formDivclose($name, $value = null, $attribs) {

$xhtml = '</div>';
return $xhtml
}
}

次に、フォームで:

$divOpen = $this->createElement('divopen', 'divname');
$this->addElement($divOpen);

$mailRecepientName = new Zend_Form_Element_Text("mailRecepientName" . $id);
$mailRecepientName->setRequired(true)->setLabel('اسم المستفيد')->setDecorators(array(
        'ViewHelper',
        'Errors',
        array(array('data' => 'HtmlTag'), array('tag' => 'span')),
        array('Label', array('tag' => 'span'))
    ););

$mailRecepientNote = new Zend_Form_Element_Text("mailRecepientNote" . $id);
$mailRecepientNote->setRequired(true)->setLabel('البيـــــــان')->setDecorators(array(
        'ViewHelper',
        'Errors',
        array(array('data' => 'HtmlTag'), array('tag' => 'span')),
        array('Label', array('tag' => 'span'))
    ););
  );

$divClose = $this->createElement('divclose', 'closingdiv');
$this->addElement($divClose);

それが最善の方法かどうかはわかりませんが、うまくいく可能性があります...

于 2012-06-26T18:29:26.590 に答える