使用jquery的Zend Framework表单

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

谢谢,

Ivo Trompert

没问题。

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

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

例如,我能够创建一个AutoComplete字段,它具有常规的Zend_Formvalidation和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不会为你生成任何客户端JavaScriptvalidation器,如果那就是你的意思。

但是:你可以在服务器上进行所有validation,并使用jQuery挂钩字段的更改事件,并使用AJAX-ify表单validation。

检查是否有样品。