PHP Zend无法正确显示

时间:2010-01-10 02:45:26

标签: zend-framework dojo zend-form zend-studio

我正在尝试为我的网站重新创建以下博客的标签表单。

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

我目前在页面上显示的是表单,但不是标签,而是显示整个表单。我知道表单正在显示子表单,因为我已将它们注释掉,然后它们就会消失。有人能帮助我找到启蒙之路吗?我相信所有相关内容都在下面。我已经包含了位于

的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 ;?>

1 个答案:

答案 0 :(得分:2)

如果没有CSS等,很难确切地说出问题可能是什么 - 但是你的HTML源代码似乎确实存在一些非常严重的问题,所以会尝试在其他任何问题之前修复它们。

例如,<html>元素中包含重复的<div id="head">元素(包括重复的<head><body>元素),这必然会导致某种程度的不可预测行为。

不得不说我不太确定你会得到那种输出。你在使用布局吗?看起来你可能已经在视图脚本中创建了内部<html>元素,然后它被布局脚本包含在第二个元素中。也许只是检查你肯定只是在一个地方创建html,head,body元素,看看它从哪里开始......