2009-08-06 5 views
3

에 삽입 DIV 및 이미지는 내 젠드 형태로이 같은 HTML 코드를 삽입해야합니다 젠드 프레임 워크 : 내 양식

<div class="myClass1" id="myId1" style="display: none;"><img src="images/myImage.jpg" /></div> 

은 무엇 위의 HTML 코드에 대한 젠드 프레임 워크의 코드가 될 것입니다. Create_Element로 시도했지만 항상 div 태그 안에 버튼을 만듭니다. 예제 코드를 제공해주세요. 감사합니다

답변

8

"html"이라는 맞춤 요소를 만들었습니다.

 

/** 
* Abstract class for extension 
*/ 
require_once 'Zend/View/Helper/FormElement.php'; 

/** 
* Helper to show HTML 
* 
*/ 
class Zend_View_Helper_FormHtml extends Zend_View_Helper_FormElement 
{ 
    /** 
    * Helper to show a html in a form 
    * 
    * @param string|array $name If a string, the element name. If an 
    * array, all other parameters are ignored, and the array elements 
    * are extracted in place of added parameters. 
    * 
    * @param mixed $value The element value. 
    * 
    * @param array $attribs Attributes for the element tag. 
    * 
    * @return string The element XHTML. 
    */ 
    public function formHtml($name, $value = null, $attribs = null) 
    { 
     $info = $this->_getInfo($name, $value, $attribs); 
     extract($info); // name, value, attribs, options, listsep, disable 

     // Render the button. 
     $xhtml = 'view->escape($id) . '">' 
      . $this->_htmlAttribs($attribs) 
      . $this->view->escape($value) . ''; 

     return $xhtml; 
    } 
} 
 

당신은 할 수 있습니다 내가보기 도우미 FormHtml.php를 추가했다

 

/** Zend_Form_Element_Xhtml */ 
require_once 'Zend/Form/Element/Xhtml.php'; 

/** 
* HTML form element 
* 
*/ 
class Zend_Form_Element_Html extends Zend_Form_Element_Xhtml 
{ 
    /** 
    * Default form view helper to use for rendering 
    * @var string 
    */ 
    public $helper = 'formHtml'; 
} 
 

두 번째는 (내가/뷰/도우미 응용 프로그램에 넣어) : 나는에/양식/요소 Html.php 추가 다음과 같이 양식에 html을 추가하십시오.

 

$form->createElement('html', 'someid', array('value'=>'gna

foobar

'));

더 많은 단순화가 가능할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 그것은 나를 도왔다. – NAVEED

3

'note'요소 유형을 사용하여 마크 업을 요소의 값으로 전달하여 html을 추가 할 수 있습니다.

+1

여기에 예제 코드를 제공 할 수 있습니까? – NAVEED

0

대개 HTML 형식으로 렌더링하려면 array (escape => false) 옵션과 함께 description을 사용하십시오.

0

양식 ViewScript를 고려해 보셨습니까? this discussion을 참조하십시오.

4

폼 요소를 만드는 경우, 당신이 아래의 코드, 또는 같이 isValid() 메소드를 오버라이드 (override) 할 필요가 생각하는 당신의 "값"유효성 검사 오류에 사라집니다 :

class RenomoZF_Form_Element_Note extends Zend_Form_Element_Xhtml 
{ 
    /** 
    * Default form view helper to use for rendering 
    * @var string 
    */ 
    public $helper = 'formNote'; 

    public function isValid($value, $context = null) { 
     return TRUE; 
    } 

} 
+0

정말 고마워! 이것은 나를 도와 줬어! 제출시 내 메모가 사라지는 이유를 파악할 수 없습니다. :) – Luke

+0

당신은 내 영웅입니다! –

1

동일한 문제가 tomas.fejfar 코멘트에서 다음을 사용했습니다.

array(escape => false) 

e.g. 

$decorators = array(
    'ViewHelper', 
    'Label', 
    array('Description', array('escape' => false,)), 
    'Errors') 
); 

치료를 받았다.

건배

2

이는 ZF 1.10에-준 완료됩니다. Zend_View_Helper_FormNote 클래스를 만든 누군가가 임의의 (장식자를위한 cept) HTML을 삽입 할 수 있습니다.

사용하려면 Zend_Form_Element_Xhtml을 확장해야합니다.

<?php 

/** Zend_Form_Element_Xhtml */ 
require_once 'Zend/Form/Element/Xhtml.php'; 

/** 
* Note form element 
* 
*/ 
class MyNS_Form_Element_Note extends Zend_Form_Element_Xhtml 
{ 
    /** 
    * Default form view helper to use for rendering 
    * @var string 
    */ 
    public $helper = 'formNote'; 
} 

그런 다음 양식 플러그인 러더를 사용하여 양식/요소 클래스를 양식 개체에 추가하십시오. 내 라이브러리 폴더 (MyNs/Form/Element/Note.php)에 넣습니다.

$yourForm= new Zend_Dojo_Form(); 
$yourForm->addPrefixPath("MyNS_Form", "MyNS/Form/"); 

이제 모든 요소와 마찬가지로 호출 할 수 있습니다.

$yourForm->addElement(
       'note', 
       'myElementId', 
       array(
       'value'=>'<a href="#">omgwtfbbq</a>' 
       ) 
      ) 

이 여전히 장식의 코드를 래핑, 그러나 그것의 해결책은 ZF에 미리 내장 전에 언급했듯이.

+0

+1 for omgwtfbbq –

0

위의 방법을 사용하면 유효성 검사 오류가있는 양식을 제출할 때 FormNote의 값이 계속 사라집니다.

편집 : 삭제할 수 있으며 덮어 쓰기 isValid()으로 문제가 해결되었습니다.

+2

원래 질문의 날짜에주의하십시오. 이 질문은 거의 2 년 전에 받아 들여진 대답이었습니다. –