使用jquery的Zend Framework表单

Ivo*_*ert 12 php validation jquery zend-framework zend-form

任何人都知道如何使用Zend_Form和jquery简单地创建一个表单?我想使用Zend_Form来验证表单,所以我不需要在JavaScript和PHP中使用双脚本表单.

谢谢,

Ivo Trompert

小智 10

没问题.

如果您使用自动加载,请将ZendX_JQuery添加到您的库中.

然后根据您的需要扩展ZendX_JQuery_Form.在你的类的init()方法中做你的东西.

例如,我能够创建一个AutoComplete字段,它具有常规的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,
    )
);
Run Code Online (Sandbox Code Playgroud)

然后我甚至改变了这样的默认装饰器:

$elementDecorators = array(
    array('UiWidgetElement', array('tag' => '')),
    array('Errors', array('tag' => 'div', 'class'=>'error')),
    array('Label'),
    array('HtmlTag', array('tag' => 'div')),
);
$elem->setDecorators($elementDecorators);
Run Code Online (Sandbox Code Playgroud)

最后添加到我的表单(记住我在init()中,所以我将通过$ this解决它):

$this->addElement($elem);
Run Code Online (Sandbox Code Playgroud)

你在那里,魔术已经完成了.

PS:不要忘记在引导程序中添加以下内容:

$view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');
Run Code Online (Sandbox Code Playgroud)