2014-09-02 2 views
0

У меня есть общественная функция в моей форме zend, называемая select, в которой она и элемент выбирают для добавления addmultioptions, каждый addmultioption имеет определенную форму, которая появляется после выбора, некоторые формы, хотя и состоят из datepickers, но у меня проблема с выбором этих полей выбора с помощью datepickers. Говорю, что я использую JQuery и включил длину Zendx в свой application.ini, а также попытался расширить класс ZendX_JQuery_Form.Zend Form DatePicker

У меня есть несколько форм с датами, использующими одни и те же методы для каждого, но не уверен, что происходит с этим. Вот мой код ниже.

Heres exmple моего кода ниже.

<?php 

class Form_Excel extends ZendX_JQuery_Form //Tried Both methods normally use the one below 
class Form_Excel extends Zend_Form 
{ 
    public function init() 
    { 
} 


    public function excel() 
    { 
     $type = new Zend_Form_Element_Select('type'); 
     $type->setLabel('Select a Type:') 
      ->addMultiOption('1', ' Report1') 
      ->addMultiOption('2', ' Report2') 
      ->addMultiOption('3', ' Report3') 
      ->addMultiOption('4', ' Report4') 
      ->addMultiOption('5', ' Export5') 
      ->addMultiOption('6', ' Report6') 
      ->addMultiOption('7', ' Report7') 
      ->addmultiOption('8', ' Report8'); 

     $type->addDecorator(array('row' => 'HtmlTag'), array('tag' => 'div','class' => 'col-md-12 field-box','style' => 'padding-left:0;padding-top:10px;margin-bottom: -35px;clear: both;')) 
      ->addDecorators(array(array('HtmlTag',array('tag' => 'dd', 'class' => 'ui-custom search-width span5')))); 

     $this->addElement($type); 
    } 

    public function 1() 
    { 
     $hidden = new Zend_Form_Element_Hidden('hidden'); 
     $hidden->setValue('status'); 
     $this->addElement($hidden); 

     $status = new Zend_Form_Element_Select('status'); 
     $status->setLabel('Current Status: ') 
        ->addMultiOption('', '--Select One--') 
        ->addMultiOption(1, 'First') 
        ->addMultiOption(2, 'Second') 
        ->addMultiOption(3, 'Contacted') 

       ->addDecorator(array('row' => 'HtmlTag'), array('tag' => 'div','class' => 'col-md-12 field-box','style' => 'padding-left:0;padding-top:10px;clear: both;')); 

     $status->setAttribs(array('class' => 'col-md-12 form-control')); 

     $this->addElement($status); 

     //Assessed Before/After 
     $before = new ZendX_JQuery_Form_Element_DatePicker('before'); 
     $before  ->setLabel('Date Before: ') 
        ->addFilter('StripTags'); 
     $before  ->setJQueryParams(array(
        'dateFormat'=>'yy-mm-dd', 
        'changeMonth'=> true, 
        'changeYear'=> true 
        )) 
        ->addDecorator(array('row' => 'HtmlTag'), array('tag' => 'div','class' => 'col-md-4 field-box the-font print-container','style' => 'padding-left:0;padding-top:10px;')); 


     $before->setAttribs(array('class' => 'col-md-4 form-control the-font text-field')); 

     $this->addElement($before);   

     $after = new ZendX_JQuery_Form_Element_DatePicker('after'); 
     $after ->setLabel('Date After: ') 
        ->addFilter('StripTags'); 
     $after ->setJQueryParams(array(
        'defaultDate' => date('d-m-y'), 
        'changeMonth'=> true, 
        'changeYear'=> true 
        )) 
        ->addDecorator(array('row' => 'HtmlTag'), array('tag' => 'div','class' => 'col-md-4 field-box the-font print-container','style' => 'padding-left:0;padding-top:10px;')); 


     $after->setAttribs(array('class' => 'col-md-4 form-control the-font text-field')); 

     $this->addElement($after); 


     $submit = new Zend_Form_Element_Submit('submit'); 
     $submit ->setLabel('Submit') 
       ->setAttrib('class', 'btn-flat primary') 
       ->addDecorator(array('row' => 'HtmlTag'), array('tag' => 'div','style' => 'width: 88%; padding-left:0;clear: both;')); 
     $this->addElement($submit); 
    } 
} 

ответ

0

При использовании:

$this->view->form = new Form_Excel(); 

Это, как правило, только выполняет init() метода формы.

Чтобы выполнить другой метод, мы все равно создадим экземпляр класса, а затем вызываем метод.

например.

$this->view->form->excel(); 

то в силу:

<?= $this->form ?> 

возвратит select элемент.

+0

Что вы говорите, это $ form = new Form_Excel(); $ form-> excel() ;, который у меня уже есть в контроллере и form;?>, на мой взгляд, форма обращается, но я не могу выбрать поле datepicker, я не могу выберите в поле и выберите дату –

+1

Да, потому что вы не расширяете 'ZendX_Jquery_Form' для выбора даты, это необходимо, кроме того, если он загружен' ajax', он все равно не будет работать, и вам нужно будет использовать '. datepicker() 'jquery method: http://jqueryui.com/datepicker/ – surfer190

+0

Как получилось, что некоторые из форм я не реализовал ZendX_Jquery_Form, но они все еще работали? и я попробовал это, но я попробовал это снова, просто чтобы проверить, не пропустил ли я что-нибудь. –