0

次のブログのタブ付きフォームを自分のWebサイト用に再作成しようとしています。

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

現在、自分のページにフォームが表示されていますが、タブではなく、通常のようにフォーム全体が表示されます。コメントアウトしたので、フォームにサブフォームが表示されていて、サブフォームが消えていることはわかっています。誰かが私が悟りへの道を見つけるのを手伝ってもらえますか?関連するものはすべて以下にあると思います。ある道場ベース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 ;?>
4

1 に答える 1

2

CSS などを使用せずに問題が何であるかを正確に判断するのは困難ですが、HTML ソースにかなり深刻な問題があるように思われるため、何よりも先にそれらを修正してください。

たとえば、<html>要素内に重複した<div id="head">要素 (重複した<head>and<body>要素を含む) があり、それが何らかの予測不能な動作につながることは間違いありません。

どのようにしてそのような出力が得られたのか、私にはよくわかりません。レイアウトを使用していますか?<html>ビュー スクリプトで内部要素を作成し、レイアウト スクリプトによって 2 番目の要素にラップされているように見えます。おそらく、html、head、body 要素を 1 か所で作成しているだけであることを確認し、どこから始めればよいかを確認してください...

于 2010-01-11T21:59:02.387 に答える