Подтвердить что ты не робот

Форма Zend Framework с jquery

Любая идея, как просто создать форму с Zend_Form и jquery? Я хочу использовать Zend_Form для проверки формы, поэтому мне не нужно иметь двойную script форму в JavaScript и PHP.

Спасибо,

Иво Тромперт

4b9b3361

Ответ 1

Нет проблем.

Добавьте 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: не забудьте добавить следующее в свой bootstrap:

$view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');

Ответ 2

Ну, Zend_Form не будет генерировать для вас какие-либо клиентские JavaScript-валидаторы, если это то, что вы имеете в виду.

НО. Вы можете просто выполнить всю проверку на сервере и использовать jQuery для привязки к событиям изменения полей и AJAX-ify для проверки формы.

Отметьте который для образца.