Я довольно новичок в создании веб-приложения и хотел бы обратиться за помощью в отношении dojo и zend framework.У меня проблемы с проверкой при отправке формы, а также необходимо создать динамический элемент при нажатии кнопки внутри формы (добавить кнопку нового модератора).
Что мне нужно:
То, что у меня есть сейчас:
- Форма, в которую я помещаю проверки при создании элемента.
- Элемент представления, в котором есть декларативный диалог dijit, гдеЯ «повторил» форму zend.
- Кнопка, которая запускает и показывает диалоговое окно dijit.
- Контроллер, который проверяет данные формы и добавляет ошибки формы, если таковые имеются.
Проблема
- Проверка набора при создании элемента не запускается и отображается в форме.
- Где и как добавить создание нового элемента при нажатии кнопки «новый модератор».
Вот мой урезанный код:
Форма
class Form_Test
{
public $processed = false;
public function init()
{
parent::init();
$this->setAttribs(array('name'=>'test'));
$this->setAction('/myapp/new')->setMethod('
$this->addElement('ValidationTextBox', 'topic', array(
'label' => 'Topic: ',
'required' => true,
'trim' => true,
'validators' => array("alnum"),
'filters' => array(new Zend_Filter_StringToLower(),
new Zend_Filter_StringTrim()
)
)
);
$this->addElement('SimpleTextArea', 'desc', array(
'label' => 'Description: ',
'trim' => true
)
);
$this->addElement('ValidationTextBox', 'moderator', array(
'label' => 'Moderator: ',
'required' => true,
'trim' => true,
'validators' => array("EmailAddress"),
'filters' => array(new Zend_Filter_StringToLower(),
new Zend_Filter_StringTrim()
)
)
);
$this->addElement('SubmitButton', 'submit', array(
'label' => 'Create'
));
}
}
Вид
<button class="myButton" type="button" onclick="dijit.byId('formDialog').show()">
New Topic
</button>
<div dojoType="dijit.Dialog" id="formDialog" title="Topic" style="width:500px; height:300px;">
<?php echo $this->form; ?>
</div>
Контроллер
public function newAction()
{
$form= new Form_Test();
$this->view->form = $form;
$form->submit->setLabel('Create');
$values = $form->getValues();
if( $this->_request->isPost())
{
if($form->isValid($_POST)){
$topic = new Application_Model_Topic();
$result = $topic->createNewTopic($_POST);
if($result == false){
$form->addError($result->error);
}
}
}
$this->view->form = $form;
// How to redirect to form if there's error?
$this->_redirect('/myapp/index');
}
Я видел пост с созданием динамического элемента, который использует ajax, но это не такиспользуя диалоговое окно dijit в форме и в основном в jquery, где у меня также нет никакого фона.
Я уже искал в сети, но безрезультатно.Пожалуйста, помогите мне.Заранее спасибо.