Любая идея, как просто создать форму с Zend_Form и jquery? Я хочу использовать Zend_Form для проверки формы, поэтому мне не нужно дублировать скрипт в JavaScript и PHP.
Спасибо,
Иво Тромперт
Нет проблем.
Добавьте ZendX_JQuery в свою библиотеку, если вы используете автозагрузку.
Затем расширьте ZendX_JQuery_Form в соответствии с вашими потребностями. Сделайте свой материал в методе init () вашего класса.
Например, мне удалось создать поле автозаполнения с регулярной проверкой Zend_Form и JQuery следующим образом:
$elem = new ZendX_JQuery_Form_Element_AutoComplete( 'query', array('Label' => 'Search', 'required'=>true, 'filters'=>array('StripTags'), 'validators'=>array( array('validator'=>'StringLength', 'options'=>array('min'=>'3'), 'breakChainOnFailure'=>true ), array('Alnum') ) ) ); $elem->setJQueryParams(array('data' => array(), 'url' => 'my_autocomplete_callback.php', 'minChars' => 1, 'onChangeInterval' => 500, ) );
Затем я даже поменял декораторы по умолчанию следующим образом:
$elementDecorators = array( array('UiWidgetElement', array('tag' => '')), array('Errors', array('tag' => 'div', 'class'=>'error')), array('Label'), array('HtmlTag', array('tag' => 'div')), ); $elem->setDecorators($elementDecorators);
И, наконец, добавьте в мою форму (помните, что я в init (), поэтому я рассмотрю ее через $ this):
$this->addElement($elem);
Вот вы, волшебство сделано.
PS: не забудьте добавить следующее в свой бутстрап:
$view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');
Ну, Zend_Form не создаст для вас каких-либо клиентских JavaScript-валидаторов, если это то, что вы имеете в виду.
НО: Вы можете просто выполнить всю проверку на сервере и использовать jQuery для привязки к событиям изменений полей и AJAX-ify для проверки формы.
Проверьте это на выборку.
http://web.archive.org/web/20100814175334/http://steven.macintyre.name/zend-framework-jquery-form-validation-plugins/ Здесь мы покажем, как добавить плагин в структуру Zend для обработки клиентская сторона vlidation