标签: zend-form

使用jquery的Zend Framework表单

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

谢谢,

Ivo Trompert

php validation jquery zend-framework zend-form

12
推荐指数
1
解决办法
2万
查看次数

Zend_Form:只有在选中复选框时才需要元素

我有一个表单,用户可以在其中选中"创建新地址"复选框,然后可以在同一表单中填写此新地址的字段.

现在,我想仅在选中复选框时验证此新地址的字段.否则,应该忽略它们.

如何使用Zend_Form和Zend_Validate来做到这一点?

谢谢!

php zend-framework zend-form

11
推荐指数
1
解决办法
6984
查看次数

Zend Form:Checkbox元素显示为隐藏字段?

我想在表单中添加一个简单的复选框:

$element = new Zend_Form_Element_Checkbox('dont');
$element->setDescription('Check this box if you don\'t want to do this action.');
$form->addElement($element);
Run Code Online (Sandbox Code Playgroud)

但是,这就是html的样子:

<dt id="dont-label">&nbsp;</dt>
<dd id="dont-element">
    <input type="hidden" name="dontAttach" value="0">
    <input type="checkbox" name="dontAttach" id="dontAttach" value="1">
    <p class="description">Don't attach a bulletin. I only want to send an email.</p>
</dd>
Run Code Online (Sandbox Code Playgroud)

这个问题是我使用jQuery来隐藏DT &nbsp;内部标签和DD内部隐藏元素的所有DT/DD (因此我的html将验证并且隐藏的元素不会占用空间这页纸).有没有办法使用a Zend_Form_Element_Checkbox而不必显示隐藏的输入元素?我宁愿不搞乱我的jQuery代码添加更多警告,但如果必须的话,我会.

解:

显然,我不能/不应该在checkbox元素之前删除隐藏元素.所以这是我的jQuery代码隐藏所有隐藏的表单元素在页面上显示:

//fix zf hidden element from displaying
$('input[type=hidden]').filter(function() {
    var noLabel = $(this).closest('dd').prev('dt').html() === '&nbsp;';
    var onlyChild = $(this).is(':only-child');
    if (noLabel && onlyChild) {
        return true;
    }
    return false; …
Run Code Online (Sandbox Code Playgroud)

checkbox zend-framework zend-form zend-form-element

11
推荐指数
2
解决办法
1万
查看次数

Zend中的Action View Helper - 可以解决吗?

我正在构建一个我希望用作"标签式浏览"功能的界面.这些选项卡中的每一个都已编写为操作,选项卡式界面可作为各个选项卡的链接.我决定尝试为这个控制器编写"索引"页面 - 将所有选项卡的内容放入隐藏的div并使用jQuery在它们之间交换,但是一旦我开始使用动作视图助手 - 我遇到了很多人说这是不好的做法.(见本文)

其中一些操作会构建表单 - 从模型中获取一些数据等以显示.我希望每个动作都能继续自行运行(一些解析形式).

浏览到/ item应该为您提供选项卡式菜单,以及隐藏标记中所有div的内容 - 其中/ item/tab2是特定操作(例如表单提交).

另一个复杂/警告 - 如果用户无权访问该"选项卡",某些操作将抛出Access Exceptions.我不想两次将访问检查构建到系统中(因此显示一个包含空内容的选项卡).

我只想弄清楚处理这类事情的最佳做法是什么,我认为动作助手可能就是这样.如果我尝试使用View Helpers - 我开始想知道这是否是组装Zend_Form的正确位置.

有没有人对"正确"的方法有任何建议,不使用Zend_View_Helper_Action

php model-view-controller zend-framework zend-form

10
推荐指数
1
解决办法
6661
查看次数

如何从提交按钮中删除标签装饰器

在我的表格中,我有这个代码;

// Add the submit button
$element = $this->addElement('submit', 'submit', array(
    'ignore'   => true,
    'label' => 'Add new material'
));
$element->removeDecorator('label');
Run Code Online (Sandbox Code Playgroud)

但是,表单仍然使用标签之间的label元素进行渲染.

我究竟做错了什么?

zend-framework zend-form

10
推荐指数
3
解决办法
2万
查看次数

Zend Form SetAction使用命名路由

我有一个表单,我正在尝试设置该操作.我想使用我在引导程序中创建的路径,在我的表单文件(扩展Zend_Form)中而不是在控制器或视图中声明操作.通常当我想使用路线时,我会做类似的事情

$this->url(array(), 'route-name');
Run Code Online (Sandbox Code Playgroud)

在视图中,或

$this->_helper->url(array(), 'route-name');
Run Code Online (Sandbox Code Playgroud)

在控制器中.

如何从Zend_Form中调用路由?


编辑:我已经放弃了尝试将路由加载到zend_form.也许在将来的版本中可能有一个功能可以轻松地做到这一点?

我已经为我的表单创建了一个viewScript并在其中设置了路径:在表单init函数中:

$this->setDecorators(array(
    'PrepareElements',
        array(
            'ViewScript', array(
                    'viewScript' => 'forms/formView.phtml'
            ))));
Run Code Online (Sandbox Code Playgroud)

并在视图文件中:

<form method="post" action="<?php echo $this->url(array(), 'route-name'); ?>" enctype="application/x-www-form-urlencoded">
    <?php
        foreach ($this->element->getElements() as $element)
        {
            echo $element;
        }
    ?>
</form>
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-form zend-route

10
推荐指数
1
解决办法
6396
查看次数

如何删除Zend表单元素上的所有DtDdWrappers和标签

我知道我可以像这样单独从每个元素中删除多余的东西

$button ->removeDecorator('DtDdWrapper')
        ->removeDecorator('HtmlTag')
     ->removeDecorator('Label');
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以以zend形式为我的所有元素实现相同的目标?
如何删除包裹表单的dl?

php zend-framework zend-form

10
推荐指数
1
解决办法
2万
查看次数

Zend_Framework装饰器在div中包装Label和ViewHelper

我是新手,zend装饰malarchy,但我有两个重要问题,我无法理解.问题一之后是一些例子

$decorate = array(
    array('ViewHelper'),
    array('Description'),
    array('Errors', array('class'=>'error')),
    array('Label', array('tag'=>'div', 'separator'=>' ')),
    array('HtmlTag', array('tag' => 'li', 'class'=>'element')),
);

...

$name = new Zend_Form_Element_Text('title');
$name->setLabel('Title')
    ->setDescription("No --- way");

$name->setDecorator($decorate);
Run Code Online (Sandbox Code Playgroud)

哪个输出

<li class="element">
    <label for="title" class="required">Title</label> 
    <input type="text" name="title" id="title" value="">
    <p class="hint">No --- way</p>
    <ul class="error">
        <li>Value is required and can't be empty</li>
    </ul>
</li>
Run Code Online (Sandbox Code Playgroud)

问题#1

我如何包装labelinput围绕div标签?所以输出如下:

<li class="element">
    <div>
        <label for="title" class="required">Title</label> 
        <input type="text" name="title" id="title" value="">
    </div>
    <p class="hint">No --- way</p>
    <ul class="error">
        <li>Value is …
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-form zend-decorators

10
推荐指数
1
解决办法
7524
查看次数

Zend Framework 2中的MultiSelect

Zend Framework 1.12中有一个Zend_Form_Element_Multiselect.如何在Zend Framework 2.0中实现相同的结果?我只看到Zend\Form\Element\MultiCheckbox和Zend\Form\Element\Select

php zend-form multi-select zend-framework2

10
推荐指数
2
解决办法
1万
查看次数

Zend Framework 2 - 表单元素装饰器

我想强制Zend表单进入Twitter Bootstrap风格.我目前遍历表单字段并将表单信息写入我的bootstrap div结构.

我在Zend Framework 1(!)中看到有一种方法可以在装饰器中执行此操作.但出于某种原因,版本2的文档并没有涵盖这一点......

我想做这样的事情:

protected $_format = '<label for="%s">%s</label>'
             . '<input id="%s" name="%s" type="text" value="%s"/>';

public function render($content)
{
    $element = $this->getElement();
    $name    = htmlentities($element->getFullyQualifiedName());
    $label   = htmlentities($element->getLabel());
    $id      = htmlentities($element->getId());
    $value   = htmlentities($element->getValue());

    $markup  = sprintf($this->_format, $name, $label, $id, $name, $value);
    return $markup;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php decorator zend-form zend-form-element zend-framework2

10
推荐指数
3
解决办法
2万
查看次数