문제

내 웹 사이트의 다음 블로그의 탭 형식을 재현하려고합니다.

http://zendguru.wordpress.com/2009/01/15/zend-framework-and-dojo-creating-tabbed-form/

현재 내 페이지에 양식이 표시되지만 탭 대신 전체 양식을 Normal처럼 표시합니다. 나는 양식이 서브 형식을 언급하고 사라지는대로 서브 형식을 표시하고 있음을 알고 있습니다. 누군가가 깨달음의 길을 찾도록 도와 줄 수 있습니까? 관련된 모든 것이 아래에 있다고 생각합니다. 나는 Dojo Base 1.4.0을 포함시켰다

http://www.dojotoolkit.org/downloads

도움이된다면 여기에 HTML이 생성되는 링크가 있습니다.

http://shortText.com/tljfsq6l37

다음 AdminController.php 페이지가 있습니다.

class AdminController extends Zend_Controller_Action
{

public function init()
{
    /* Initialize action controller here */
}

public function createeventAction()
{
    $this->view->page = 'createEvent';      
    $this->view->title = "Early Signup Administration";
    $this->view->headTitle($this->view->title, 'PREPEND');

    $createEventForm = new Form_CreateEvent();
    $this->view->form = $createEventForm;

}
}
?>

createevent.php 양식

<?php
class Form_CreateEvent extends Form_Event
{
public function __construct($options = null) 
{
    parent::__construct($options = null); 

    $shirt_sizes = array('s' => 'Small', 'm' => 'medium', 'l' => 'large', 'xl' => 'X-Large', 'XX' => 'XX-Large', '3X' => 'XXX-Large');

    $this->setDecorators(array(
    'FormElements',
    array('TabContainer', array(
    'id' => 'tabContainer',
    'style' => 'width: 600px; height: 500px;',
    'dijitParams' => array(
    'tabPosition' => 'top'
    ),
    )),
    'DijitForm',
    ));        

    $this->setName('createEvent'); 
    $idEvent = new Zend_Form_Element_Hidden('idEvent');         

    $type = parent::setName($this->type);
    $name = parent::setName($this->name);
    $city = parent::setName($this->city);
    $state = parent::setName($this->state);
    $location = parent::setName($this->location);
    $date = parent::setName($this->date);
    $shirtRequired = parent::setName($this->shirtRequired);
    $eventImage = parent::setName($this->eventImage);
    $eventUrl = parent::setName($this->eventUrl);
    //$submit = parent::setName($this->submit);


    $shirtSize = new Zend_Form_Element_MultiCheckbox ('shirtSize');
    $shirtSize->setLabel('Shirt Size') 
              ->setRequired(false) 
              ->addMultiOptions($shirt_sizes)
              ->setValue(array('s','m','l','xl'))
              ->addFilter('StripTags') 
              ->addFilter('StringTrim');


    $directorEmail = new Zend_Form_Element_Text('email');
    $directorEmail->setLabel('Director\'s Email') 
          ->setRequired(false) 
          ->addFilter('StripTags') 
          ->addFilter('StringTrim');              

    $waiverTitle = new Zend_Form_Element_Text('waiverTitle');
    $waiverTitle->setLabel('Waiver Title') 
          ->setRequired(false) 
          ->addFilter('StripTags') 
          ->addFilter('StringTrim');              

    $waiverText = new Zend_Form_Element_Text('waiverText');
    $waiverText->setLabel('Waiver Text') 
          ->setRequired(false) 
          ->addFilter('StripTags') 
          ->addFilter('StringTrim');              

    $eventClosedMessage = new Zend_Form_Element_Text('eventClosedMessage');  
    $eventClosedMessage->setLabel('Event Closed Message') 
          ->setRequired(false) 
          ->addFilter('StripTags') 
          ->addFilter('StringTrim');              

    $logoFlag = new Zend_Form_Element_Radio('logoFlag');
    $logoFlag->setLabel('Select Logo Image') 
          ->setRequired(false) 
          ->addMultiOptions(array(
             'logo' => 'Logo',
             'not_logo' => 'Not Logo'))
          ->addFilter('StripTags');

   /* $this->addElements(array($shirtSize, 
                            $directorEmail, 
                            $waiverTitle, 
                            $waiverText, 
                            $eventClosedMessage, 
                            $logoFlag
                            )); */

    $subForm1 = new Zend_Dojo_Form_SubForm();

    $subForm1->setAttribs(array(
    'name'   => 'textboxtab',
    'legend' => 'Text Elements',
    'dijitParams' => array(
    'title' => 'Text Elements',
    ),
    ));

    $subForm1->addElements(array($shirtSize, 
                            $directorEmail, 
                            $waiverTitle));

    $subForm2 = new Zend_Dojo_Form_SubForm();

    $subForm2->setAttribs(array(
    'name'   => 'toggletab',
    'legend' => 'Toggle Elements',
    ));

    $subForm2->addElements(array( 
                            $waiverText, 
                            $eventClosedMessage, 
                            $logoFlag
                            ));

$this->addSubForm($subForm1, 'textboxtab')
      ->addSubForm($subForm2, 'editortab');

}
} 
?>

해당 페이지에 포함 된 Header.phtml의 다음은 다음과 같습니다.

<SCRIPT TYPE="text/javascript" SRC="/dojo/dojo.js"></SCRIPT>
<script type="text/javascript">
dojo.require("dojo.parser");
</script>

그리고 createevent.phtml 페이지에 다음은 보려고합니다.

<?php echo $this->form ;?>
도움이 되었습니까?

해결책

CSS 등이없는 문제가 무엇인지 정확히 말하기 어렵습니다. 그러나 HTML 소스에 꽤 심각한 문제가있는 것 같습니다.

예를 들어, 중복이 있습니다 <html> 내부의 요소 <div id="head"> 요소 (복제 포함 <head> 그리고 <body> 요소), 그리고 그것은 다소 예측할 수없는 행동으로 이어질 것입니다.

당신이 어떻게 그런 종류의 출력을 얻었는지 잘 모르겠습니다. 레이아웃을 사용하고 있습니까? 내면을 만든 것 같아요 <html> View Script의 요소는 레이아웃 스크립트에 의해 두 번째로 래핑되었습니다. 어쩌면 당신은 확실히 당신이 한 곳에서 HTML, 머리, 신체 요소 만 만들고 어디에서 시작할 수있는 곳을 확인할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top