Php 带有jquery的Zend框架表单
有人知道如何简单地用Zend_表单和jquery创建表单吗?我想使用Zend_表单来验证表单,这样就不必用JavaScript和PHP编写表单的双重脚本 谢谢,Php 带有jquery的Zend框架表单,php,jquery,validation,zend-framework,zend-form,Php,Jquery,Validation,Zend Framework,Zend Form,有人知道如何简单地用Zend_表单和jquery创建表单吗?我想使用Zend_表单来验证表单,这样就不必用JavaScript和PHP编写表单的双重脚本 谢谢, Ivo Trompert好吧,Zend_表单不会为您生成任何客户端JavaScript验证器,如果这是您的意思的话 但是:您只需在服务器上执行所有验证,然后使用jQuery钩住字段的更改事件,并将表单验证AJAX化 检查样本。没有问题 如果使用自动加载,请将ZendX_JQuery添加到库中 然后扩展ZendX_JQuery_表单以满足
Ivo Trompert好吧,Zend_表单不会为您生成任何客户端JavaScript验证器,如果这是您的意思的话 但是:您只需在服务器上执行所有验证,然后使用jQuery钩住字段的更改事件,并将表单验证AJAX化 检查样本。没有问题 如果使用自动加载,请将ZendX_JQuery添加到库中 然后扩展ZendX_JQuery_表单以满足您的需要。 在类的init()方法中执行操作 例如,我能够创建一个自动完成字段,该字段具有常规Zend_表单验证和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);
然后我甚至更改了默认的装饰器,如下所示:
$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对其进行处理):
你来了,魔法完成了
注意:不要忘记在引导中添加以下内容:
$view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper');
这里我们展示如何向Zend框架添加插件来处理客户端虚拟化请注意,-ZendX将被删除,不再受支持。@Jonathan