Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有jquery的Zend框架表单_Php_Jquery_Validation_Zend Framework_Zend Form - Fatal编程技术网

Php 带有jquery的Zend框架表单

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_表单以满足

有人知道如何简单地用Zend_表单和jquery创建表单吗?我想使用Zend_表单来验证表单,这样就不必用JavaScript和PHP编写表单的双重脚本

谢谢,


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