我有一个表现形式:
// Email
$email = $this->createElement('text', 'email');
$email->setLabel('Адрес электронной почты:')
->addValidator('EmailAddress')
->addValidator('StringLength', FALSE, array(6, 30))
->setRequired(TRUE);
// Пароль
$password = $this->createElement('password', 'password');
$password->setLabel('Пароль:')
->addValidator('StringLength', FALSE, array(6, 30))
->setRequired(TRUE);
// Шрифт капчи
$fonts = scandir(APPLICATION_PATH . '/other/fonts/');
$font = APPLICATION_PATH . '/other/fonts/' . $fonts[rand(2, sizeof($fonts) - 1)];
// Инициализация капчи
$captcha = new Zend_Form_Element_Captcha(
md5($_SERVER["REMOTE_ADDR"] . date('d.m.Y')),
array('label' => 'Введите код с картинки:',
'required' => TRUE,
'captcha' => array(
'captcha' => 'Image',
'FontSize' => rand(25, 30),
'wordLen' => rand(4, 6),
'timeout' => 300,
'font' => $font,
'imgDir' => 'img/captcha/',
'imgUrl' => '/img/captcha/',
)));
$submit = $this->createElement('submit', 'submit_button', array(
'label' => 'Enter',
));
我有一个自己的html代码用于此表单,它包含在视图脚本中,但captcha
元素是动态的。有没有办法只显示captcha元素html代码?像这样:
<!-- my html code -->
<?php $this->myForm->captcha; ?>
<!-- my html code -->
感谢。
答案 0 :(得分:2)
是的,你可以使用如下
您需要将表单传递给视图脚本才能使其正常工作。
public function someAction()
{
$this->view->form = new Form_Name(); // form class name
}
在您的视图脚本中,您可以通过
接收元素<table>
<tr>
<td><?= $this->form->getElement('captcha'); ?></td>
</tr>
</table>
请告诉我是否可以为您提供更多帮助。