2010-01-10 72 views
0

我正在嘗試爲我的網站重新創建以下博客的選項卡式窗體。PHP Zend無法正確顯示

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

我目前的表單顯示在我的頁面上,但不是製表符顯示正常的整個表單。我知道窗體正在顯示子窗體,因爲我已將它們評論出來並消失。有人能幫助我找到啓蒙之路嗎?我相信有關的一切都在下面。我已經包括位於

http://www.dojotoolkit.org/downloads 

我有一個鏈接到這裏創建的HTML是否有幫助,以及道場基地1.4.0。

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> 

,我試圖查看

<?php echo $this->form ;?> 
+0

沒有人有任何想法? – Joe 2010-01-10 15:29:54

回答

2

難以啓齒的問題可能是什麼沒有你的CSS等createEvent.phtml頁以下 - 但你似乎有一些在您的HTML源代碼中存在非常嚴重的問題,所以會嘗試在其他任何事情之前修復它們。

例如,你有<div id="head">元件(包括複製<head><body>元件)內的重複<html>元件,並且被綁定到導致有些不可預測的行爲。

不得不說我不太清楚你會如何得到這種輸出。你在使用佈局嗎?它看起來像你可能在你的視圖腳本中創建了內部<html>元素,然後它被佈局腳本包裝在第二個元素中。也許只是檢查你確實只是在一個地方創建HTML,頭部,身體元素,看看你從哪裏開始...

+0

謝謝,我從你所述的內容中找出了它。我在佈局中也有一些東西正在創建。這兩個js文件都是從那裏調用導致錯誤發生。謝謝 – Joe 2010-01-12 20:14:48