Zend 框架窗体装饰器

2024-01-21

我正在尝试使用装饰器获得以下布局:

    <form action="/index/login" method="post" id="login_form">            
        <div class="input_row">
            <img src="/images/user_icon.png" class="login_icon" alt=""/>                
            <label for="username" class="login_label">Username:</label>                
            <input type="text" name="username" value="" id="username" class="login_input"  />                            
        </div>
        <div class="input_row">
            <img src="/images/password_icon.png" class="login_icon" alt=""/> 
            <label for="password" class="login_label">Password:</label>                
            <input type="password" name="password" value="" id="password" class="login_input"  />                       
        </div>
        <div class="input_row">
            <input type="submit" name="login_submit" value="Login" class="login_submit"  />  
        </div>
    </form>

到目前为止我已经得到了这个:

    $form = new Zend_Form;

    $form->setAction('/index/login')
         ->setMethod('post')
         ->setAttrib('id', 'login_form');

    $username = $form->createElement('text', 'username');
    $username->addValidator('alnum')
             ->setRequired(TRUE)
             ->setLabel('Username')
             ->setAttrib('class', 'login_input');


    $username->setDecorators(array(
            'ViewHelper',
            'Errors',
            array('Label',array('class' => 'login_label')),
            array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'input_row')
        ));


    $form->addElement($username)
         ->addElement('submit', 'login', array('label' => 'Login'));           

如何将标签放置在标签上方?

Thanks!


我准备了一个示例,应该有助于解决您的问题。这里是:

    $form = new Zend_Form;

    $form->removeDecorator('htmlTag');

    $form->setAction('/index/login')
            ->setMethod('post')
            ->setAttrib('id', 'login_form');

    $username = $form->createElement('text', 'username');

    $username->addValidator('alnum')
            ->setRequired(TRUE)
            ->setLabel('Username')
            ->setAttrib('class', 'login_input');


    // anonymous function that will generate your image tag
    $makeImg = function($content, $element, array $options) {
                return '<img src="/images/' . $options['img'] . '" class="' . $options['class'] . ' " alt=""/> ';
            };


    $username->setDecorators(array(
        'ViewHelper',
        'Errors',
        array('Label', array('class' => 'login_label')),
        array('Callback',
            array(
                'callback' => $makeImg,
                'img' => 'user_icon.png',
                'class' => 'login_icon',                    
                'placement' => 'PREPEND'
            )
        ),
        array('HtmlTag', array('tag' => null, 'class' => 'input_row')),
    ));

    $form->addElement($username);


    $submit = $form->createElement('submit', 'login', array(
                'label' => 'Login',
                'class' => 'login_submit'
                    )
    );


    $submit->setDecorators(array(
        'ViewHelper',
        'Errors',
        array('HtmlTag', array('tag' => null, 'class' => 'input_row')),
    ));

    $form->addElement($submit);

该表单生成以下 html(我没有生成密码字段,因为您的 Zend_Form 代码不包含它):

 <form id="login_form" enctype="application/x-www-form-urlencoded" action="/index/login" method="post">
      <div class="input_row">
         <img src="/images/user_icon.png" class="login_icon " alt=""> 
         <label for="username" class="login_label required">Username</label>  
         <input type="text" name="username" id="username" value="" class="login_input">
      </div>
      <div class="input_row">
         <input type="submit" name="login" id="login" value="Login" class="login_submit"> 
      </div>
   </form>

值得一提的是我用过Callback http://framework.zend.com/manual/en/zend.form.standardDecorators.html装饰师。使用此装饰器,您可以调用任何可用于将自定义 html 注入表单的函数。在这个例子中我做了一个匿名的 http://php.net/manual/en/functions.anonymous.php我分配给的函数$makeImg变量(为此你需要 PHP 5.3,但在旧版本的 PHP 中你也可以这样做,但使用例如 create_function 函数)。这$makeImg变量是我的回调。可以看出该函数生成您的imghtml 标签。

希望这对您有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zend 框架窗体装饰器 的相关文章

  • 使用 PHP MySql 进行关键字搜索?

    我的 mysql 表中有标题 varchar 描述 text 关键字 varchar 字段 我保留了关键字字段 因为我认为我只会在这个字段中搜索 但我现在需要在所有三个字段中进行搜索 所以对于关键字 word1 word2 word3 我的
  • 谷歌图片搜索API

    我有一个网站 用户可以在其中提交图片 我想用这些图片自动在 Google 上进行搜索 以尽量减少图片被从其他网站盗用的可能性 我知道 Firefox 扩展 但这需要我右键单击每张图片并等待结果出现 我想自动化这个 我一直在寻找 API 但
  • 如何使用 WhatsAPI 官方在 PHP 中从 WhatsApp 发送消息?

    我正在尝试使用 WhatsApi 官方库通过 WhatsApp 从 php 文件发送消息 我已经将库移到了我的 Apache Web 服务器中的一个文件夹中 调用测试 如下所示 文件whatsapp php 是这样的
  • 通过 AJAX 加载的页面上的 reCAPTCHA 字段不会加载。建议?

    实例 没有 AJAX http utsarotaract org inc email php 使用 AJAX 单击给我们发送电子邮件链接 http utsarotaract org contact php 当我查看源页面时 一切正常 但是当
  • 删除 SQL 中重复的字段条目

    无论如何 我可以删除某个表中的所有重复条目 users 这是我拥有的条目类型的示例 我必须说一下桌子users由3个字段组成 ID user and pass mysql query DELETE FROM users WHERE or d
  • 检查文件是否要上传?代码点火器

    我有一个带有很少输入和一个文件输入的表单 我想检查文件输入是否为空 如果为空则不要尝试上传 如果不是则尝试上传 我尝试过这样的事情 upld file this gt upload gt data if empty upld file Up
  • Aurelia 以 PHP 传递的参数开头

    我需要在开始时将参数传递给 Aurelia 根据传递的值 应用程序将具有不同的状态 该应用程序被注入到使用 PHP 构建的页面上 因此最好的方法是使用 PHP 代码指定的参数启动它 有什么办法可以做到这一点吗 您可以在普通 JS 中访问的任
  • Laravel Eloquent 更新(如果已进行更改)

    如果记录发生更改 是否有任何方法可以使用 eloquent 模型更新 Laravel 中的记录 我不希望任何用户无缘无故地一遍又一遍地请求数据库 只需点击按钮即可保存更改 我有一个javascript根据页面中是否发生更改来启用和禁用保存按
  • 让浏览器缓存我的动态 PHP 样式表

    我想在 PHP 文件 styles php 中创建一个样式表 以便样式表变得动态 具体取决于请求的用户 对于每个单独的用户来说 样式表是不变的 因此应该缓存在他的客户端浏览器上 我读过 您可以通过设置内容类型和缓存控制等标头来实现此目的 但
  • Zend Framework - 需要从视图访问 GET 参数

    我正在使用 Zend 框架 我需要的是在我的视图中构造一个 url 通常 在常规 php 代码中 我只需使用全局 GET 获取 GET 变量 然而 对于 Zend 我将其设置为清理 URI 如下所示 ac 列表 过滤器 作品 页面 2 好像
  • 用于 Eclipse PDT 的 Zend 框架插件

    我安装了 eclipse PDT IDE 版本 1 2 0 我将它与 Dojo 一起使用来开发非常有趣的 Ajax 应用程序 现在我想在我的 eclipse IDE 中启用 Zend 框架 我怎样才能做到这一点 经过一番谷歌搜索后 我尝试了
  • 如何在 PHP >= 5.4 的特征中重载类构造函数

    在 PHP 5 中 我可以重载构造函数 以及任何其他方法 但是如果我得到这样的代码 class Base public function construct a b echo a b public function sayHello ech
  • 通过 HTML 将复杂变量传递给 javascript 的正确方法

    我试图摆脱使用 PHP 的 htmlentities 但我在这里停止了 但后来我想 我不做替换和检查特殊字符 而是只 JSON 整个对象 这提供了一个非常不受欢迎的结果 其中包含大量双引号 那么我应该怎么做呢 我应该为每个图像分配一个数字唯
  • PHP:从字符串中修剪子字符串的最佳方法

    想要处理一组字符串 并修剪一些结尾 myEnding 从最后每个字符串的如果存在的话 最简单的方法是什么 我知道使用正则表达式一切皆有可能 但这似乎是一项简单的任务 我想知道是否存在一个简单的工具来实现这一点 Thanks Gidi 我选择
  • 通过 PHP 将 CSV 导入 MYSQL

    我正在将 CSV 文件导入到我的管理区域 并且我想将文件添加到我的数据库中 我的 PHP 代码import php is
  • 使用 JWT Laravel 5 进行身份验证,无需密码

    我正在尝试学习 Laravel 我的目标是能够构建一个 RESTful API 不使用视图或刀片 仅使用 JSON 结果 稍后 AngularJS Web 应用程序和 Cordova 混合移动应用程序将使用此 api 经过一番研究 我倾向于
  • 如何在 Zend 中使用 cookie?

    如何使用 Zend Http Cookie 来设置和读取 cookie 我尝试像这样设置cookie cookie new Zend Http Cookie TestCookie TestValue localhost com 但没有生成c
  • 在 Codeigniter 中显示来自连接的数据

    我正在使用简单的联接从两个数据库中提取数据 这是模型中的连接 function com control this gt db gt select this gt db gt from comments this gt db gt join
  • R 语言与 php 集成以获取 R 的结果

    我有以下 R 脚本 assign data path data path lt C Users Owner Desktop R work assign valus to the following three percent train p
  • 从路径中删除不必要的斜杠

    path home to my site 我正在尝试删除不必要的正斜杠 从上面的路径 我正在努力得到这个结果 home to my site 我失败了str replace 因为我不知道斜线的数量 优雅的解决方案 With preg rep

随机推荐

  • 使用原始文件的共享外部包?

    我们有一些项目依赖共享类型进行通信 团队决定使用这些类型的共享包 并希望使用协议缓冲区来实现此实现 如果重要的话 语言是 Go 并且所有这些项目都不是公开的 我们如何使用项目中未定义的协议缓冲区类型 我似乎无法找到一种在应用程序之间共享完全
  • 在 C 扩展中定义 Python 枚举 - 我这样做对吗?

    我正在开发一个 Python C 扩展 我想公开一个完全在 C 中定义的自定义枚举 如 继承自 enum Enum 的类 事实证明这不是一个简单的任务 并且使用常规的继承机制 tp base不起作用 很可能是由于 Enum 的元类没有被引入
  • 在 C 中更改 .bin 文件的数据

    我有很多数据以 bin 格式存储为结构序列 我希望能够随机读取任何结构并在 C 中修改它 我正在尝试使用以下代码 但它不起作用 有人可以帮我解决吗 另外 是否可以从中间的文件中删除中间结构 代码如下 include
  • 从静态域提供 CSS

    我想从静态无 cookie 域提供我的 CSS 和图像 现在我的问题是如何指向 css 文件中的图像 我不想在 css 文件中对我的域进行硬编程 例如 http static com image png http static com im
  • 在搅拌机 2.76 中将装备重量从一个网格转移到另一个网格

    我最近开始使用搅拌机来创建我自己的游戏模型等 我创建了一个模型 对其进行了装备 单独创建了衣服 现在我想将这些衣服添加到我的模型中 以便它随装备移动而不会刺穿皮肤 因此 有很多使用重量转移工具的解决方案 但我似乎无法在 Blender 2
  • 如果设计师可以使用@font-face,为什么还要使用 sIFR?

    如果设计师可以使用 font face 为什么还要使用 sIFR font face 有什么问题吗 font face font family Hacen Tehran eot src url Hacen Tehran eot font f
  • 查询执行速度非常慢,有什么办法可以进一步改进它吗?

    我有以下查询 并且由于很多SUM函数调用 我的查询运行太慢 我的数据库中有很多记录 我想为每条记录获取今年和去年 过去 30 天 过去 90 天和过去 365 天 的报告 SELECT b id as ID d Title as Title
  • 如何在 R 中将字符串转换为日期

    有什么方法可以将下面的字符串转换为标准 R 日期类对象吗 Date String 19th January 2020 任何指针表示赞赏 Lubridate 可以处理它 gt Date String lt 19th January 2020
  • 在 mysql 查询中列出 null 和 not null

    假设我有桌子 NAME ID REF foo1 1 NULL foo2 2 1234 foo2 3 567 foo1 4 NULL foo3 5 89 我想在一个查询中计算 NULL 和 NOT NULL 的所有实例 这样我就可以说 NAM
  • Python 如何从 .egg 文件导入模块?

    我怎样才能打开 init pyc here gt gt gt import stompservice
  • 如何使用 php Excel 生成漂亮的 PDF?

    我正在使用最新的 PHPExcel 版本 我认为是 7 7 我能够生成我的Excel 我必须使用 tcpdf 生成 pdf 版本 这里别无选择 但结果是丑陋且过大 请参阅 2012 000012 的巨大字体大小 在 Excel 中为 11
  • PHP next() 不工作

    我正在尝试使用 PHP 制作一个画廊 图像加载正确 但下一个和上一个按钮似乎不起作用 单击图片 1 下的 下一步 您将看到图片 3 但是单击 图片 3 将您带到图片 2 这是正确的 我应该如何更改我的代码以使两者都按顺序进行
  • 在 Play 2.4 with DI 中,如何在“Secured”特征中使用服务类?

    这是一个Play 文档中的授权示例 https www playframework com documentation 2 0 4 ScalaSecurity Authorization 版本 2 0 4 我试图找到此文档的更新版本 但找不
  • 在 IntelliJ 中使用 Scala 工作表很困难

    我正在学习 Scala 函数式编程原理课程 但我在 IntelliJ 中使用 Scala Worksheets 进行快速测试时遇到了很多问题 例如 我建立了一个新的 Scala 项目 在其中创建了一个名为的包对象lecture5 它在文件中
  • 在 R 中下载 Kaggle zip 文件

    我正在尝试直接从 R 代码本身的 Kaggle 空间下载 zip 文件 不幸的是 它的效果并不好 这是发生的事情 对于旧金山犯罪数据集 请访问https www kaggle com c sf crime data https www ka
  • Xcode pbxstrings 文件的用途是什么?

    我有一个 Xcode 项目 需要更改它构建的产品的名称 我仔细地浏览了项目文件 并认为我已经做出了所有可能的更改 最后一步是 grep 项目文件夹中的所有文件以查找旧名称的出现 结果很干净 但是在构建之后 grep 发现一个文件包含多次出现
  • 需要帮助为 SpreadsheetApp 创建 GMAIL Pub/Sub 通知服务(Google Apps 脚本)

    我希望我不必重新发布这个问题 但我的老板将这个问题推到了高优先级 我需要帮助来解决这个问题 我正在尝试使用 GAS 脚本从我的 GSuite 域上的地址提取发布 订阅通知 目前 我正在我的域上进行测试 基本上 我正在尝试完成所有这些材料中描
  • Windows 10、DPI 缩放和全屏

    我有一个应用程序 Windows 8 1 中的 PROCESS PER MONITOR DPI AWARE 和 Windows 10 v1703 中的 DPI AWARENESS CONTEXT PER MONITOR AWARE V2 我
  • 如何查找接口中方法的索引?

    如何找到接口中定义的过程 函数的索引 可以用RTTI来实现吗 首先我们需要枚举接口的方法 不幸的是这个程序 APPTYPE CONSOLE uses System SysUtils System Rtti type IMyIntf inte
  • Zend 框架窗体装饰器

    我正在尝试使用装饰器获得以下布局