Zend Framework форма с помощью jquery - PullRequest
12 голосов
/ 20 марта 2009

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

Спасибо,

Иво Тромперт

Ответы [ 3 ]

10 голосов
/ 24 марта 2009

Нет проблем там.

Добавьте 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');
1 голос
/ 20 марта 2009

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

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

Проверьте , что для образца.

0 голосов
/ 03 августа 2009

http://web.archive.org/web/20100814175334/http://steven.macintyre.name/zend-framework-jquery-form-validation-plugins/ Здесь мы покажем, как добавить плагин в инфраструктуру Zend для обработки клиентской стороны

...