表中的 ZEND 表单元素还包含数据库中的数据

2023-12-08

你好:)我有一个装饰器和表单的问题,它会在表中,并且在这个表中还希望有来自数据库的数据...我不知道如何做到这一点以获得如下所示的结构,可以说

<table>
<tr>
  <td><?php echo array[0]['name']?>
//and here input from zend form
  <td>
  <select name='foo' id='bar'>
    <option value='something'>Foo</option>
    <option value='something2'>Foo2</option>
  </select>
  </td>
</tr>
</table>

当然 tr 会更多,并通过 foreach 或某个循环生成。

我有这样的事情:

<?php

class EditArticles_Form_EditArticles extends Zend_Form
{
protected $uid;

public function render()
{


    /* Form Elements & Other Definitions Here ... */
    $this->setName('editarticles');

    $data = new EditArticles_Model_DbTable_EditArticlesModel();
    $datadata = $data->GetArticlesToEdit($this->getUid());    //here is my data from db


    for ($i=0;$i<count($datadata);$i++)
    {           
        $do = new Zend_Form_Element_Select(''.$i);
        $do->addMultiOption('0', 'Aktywny');
                $do->addMultiOption('1', 'Nieaktywny');

        $this->addElements(array($do));
    }



    $submit = new Zend_Form_Element_Submit('updateart');
    $this->addElement($submit);


    //and here are decorators for array, and i would like to have in this table also data from array containing data from database
    $this->addDecorators(array(

                        'FormElements',
                        array('HtmlTag', array('tag' => 'table', 'id' => 'aaaa', 'style' => 'width:500px;')), 'Form', 

                        ));                 

    $this->setElementDecorators(array(

                        'ViewHelper',
                        array(  array('data' => 'HtmlTag'), array('tag' => 'td', 'style' => 'width:200px;')), 
                                array('Label', array('tag' => 'td')),

                        array(array('row' => 'HtmlTag'), array('tag' => 'tr'))

                        ), 
                        //wykluczenie submita z overrida stulu
                        array('submit'), false);


    return  parent::render();

}


//setting user id for get content from db
public function setUid($uid) {
    $this->uid = $uid;
    return $this;
}

public function getUid() {
    return $this->uid;
}

}
?>

上面代码的输出是这样的:(用红色标记,我希望从表单中进行选择。在此图像中,包含数据的表是在 phtml 中生成的另一个表,但我想通过 od 表单生成该表只需将表单元素插入到 phtml 视图中生成的表中)。

http://img14.imageshack.us/img14/9973/clipboard01pw.png

在这里发现了一些东西:Zend_Form:带有复选框的 HTML 表中的数据库记录

但我不知道如何开始......


几点评论:

  1. 通常,向表单添加元素是在init(), 而不是render().

  2. 如果消费者对象(在本例中为表单)需要依赖项(在本例中为文章模型)来完成其工作,则在消费者的构造函数中或通过设置方法(例如:$form->setArticleModel($model))。这使得在测试表单时更容易模拟模型,并清楚地说明表单对模型的依赖性。

  3. 回复:通过装饰器渲染表单中的其他内容:也许,看看任意标记装饰器。看起来(抱歉,无法完全理解波兰语)您希望在输出的每一行上都有一个选择框。因此,您可以使用模型获取行,循环遍历行,在每行上创建选择框。当您将装饰器分配给选择元素时 -ViewHelper, Errors,可能是一个HtmlTag装饰器将其包裹在<td>- 您还添加了AnyMarkup装饰器在前面添加一堆<td>包含您的行数据,最后将整行包装在<tr>.

也许是这样的(没有完全测试,只是为了给出想法):

class EditArticles_Form_EditArticles extends Zend_Form
{
    protected $model;

    public function __construct($model)
    {
        $this->model = $model;
        parent::__construct();
    }

    public function init()
    {
        $rows = $this->model->GetArticlesToEdit($this->getUid());
        $numRows = count($rows);
        for ($i = 0; $i < $numRows; $i++) {
            $do = new Zend_Form_Element_Select('myselect' . $i);
            $do->addMultiOption('0', 'Aktywny');
            $do->addMultiOption('1', 'Nieaktywny');
            $do->setDecorators(array(
                'ViewHelper',
                array(array('cell' => 'HtmlTag'), array(
                        'tag' => 'td'
                )),
                array('AnyMarkup', array(
                        'markup' => $this->_getMarkupForRow($i, $row),
                        'placement' => 'PREPEND',
                )),
                array(array('row' => 'HtmlTag'), array(
                        'tag' => 'tr'
                )),
            ));
            $this->addElement($do);
        }
    }

    protected function _getMarkupForRow($i, $row)
    {
        return '<td>' . $i . '</td>' .
            '<td>' . $row['nazwa'] . '</td>' .
            '<td>' . $row['typ'] . '</td>' .
            '<td>' . $row['rozmiar'] . '</td>';
    }
}

最后一点:记住注册一个元素装饰器前缀路径,如下所示(形式可能在init()):

$this->addElementPrefixPath('My_Decorator', 'My/Decorator', self::DECORATOR);

这允许元素解析短名称AnyMarkup变成完整的类名My_Decorator_AnyMarkup.

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

表中的 ZEND 表单元素还包含数据库中的数据 的相关文章

  • Zend 框架复选框装饰器

    我想要完成的是让复选框标签显示在复选框输入字段之后 在它们的右侧 我现在正在使用这些装饰器 private checkboxDecorators array Label array array data gt HtmlTag array t
  • Zend Framework - Flashmessenger - 只有一个字符

    我在使用 FlashMessenger 时遇到了一些问题 当我想检索布局中的消息时 它会写入消息的第一个字母 示例 test 显示 t 我尝试了发布的解决方案这个问题 https stackoverflow com questions 10
  • 在移动 Chrome 上上传图片表单失败

    我正在构建一个移动网络应用程序 其中用户手机上的图片发挥着重要作用 我有这个表单 用户可以将手机拍摄的照片上传到应用程序的数据库中 我在用着CodeIgniter上传类 https ellislab com codeigniter user
  • 从提交的表单中获取值

    我有一个非常简单的表格
  • Zend 框架将字母“f”输出到我的页面上

    我已经下载了 Zend 框架稳定版本 我相信是 1 11 上传到我的服务器 并将其添加到我的 php 包含路径中 我的目标是使用 Feed 和 Feed Writer 模块来处理一些 RSS 和 Atom 的繁重工作 问题是 每当我包含 F
  • 如何正确清理来自 AngularJS 控制器的无效输入的表单?

    我有一个 AngularJS 表单 其中包含 除其他字段之外 类型之一url 后者很重要 因为这会强制相应的输入成为有效的 URL 在某些条件下 例如 要关闭具有此类表单的模式对话框 我想以编程方式清除该表单 为此 我实现了方法reset基
  • 使用 Dojo 富文本编辑器提交表单

    有人知道如何提交包含 Dojo 富文本编辑器的表单吗 我尝试将 name 属性添加到用 dojoType dijit Editor 装饰的元素中 但是 我在接收过程中没有看到任何 HTML 我已经检查了文档 但没有看到任何明确的示例 除了将
  • 如何为名称为数组的 jquery 表单验证插件创建规则?

    有谁知道当您有一个数组的名称属性时如何为 jquery 表单验证插件创建规则 eg
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • PHPUnit 和 Zend Framework assertRedirectTo() 问题

    我在创建的测试中遇到了 assertRedirectTo 问题 下面是我使用的代码 public function testLoggedInIndexAction this gt dispatch this gt assertControl
  • 从 Mailgun 表单 Post PHP 中检索附件

    如何检索并保存通过 Mailgun 的 POST 表单发送给我的附件 下面是一些参数 attachment 1 filename gt crabby gif type gt image gif name gt attachment 1 te
  • 将 Base64 图像数据上传到 Amazon S3

    好吧 在这个phonegap 应用程序中 我从设备相机中的一个巨大图像文件开始 然后我降低分辨率并允许用户使用 javascript canvas 和一些非常酷的代码 称为 darkroomJS 来裁剪它 最后 darkroomJS 使用
  • 为 Zend 应用程序提供数据库处理程序的“正确”方法是什么

    假设您严格遵守某个组织的惯例Zend应用程序 http framework zend com manual en zend application html 您应该在哪里设置数据库处理程序以供应用程序开发人员访问 我知道如何设置ZendDb
  • 当数据验证失败时保留表单字段中的值

    我在弄清楚验证失败时如何保留用户数据时遇到问题 我对 PHP 有点陌生 所以我的逻辑可能会犯一些巨大的错误 目前 如果验证失败 所有字段都会被清除 并且 Post 数据也会消失 这是一些代码 假设用户输入无效电子邮件 我希望保留 名称 字段
  • Calendly 未在 Webflow 中预填写表单

    我在 Webflow 项目中使用 Calendly 并且它有效 不过 我想在 Calendly 中预先填写表格 这里有一个指南 https help calendly com hc en us articles 226766767 Pre
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账
  • 您可以使用 JavaScript 触发自定义 HTML5 表单错误吗?

    如果我有一个像这样的输入
  • PHP $_FILES 多个文件上传问题

    我在 PHP 中上传多个文件时遇到一个小问题 我有这个 html 表单
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens

随机推荐

  • 如何在 umbraco 6 的管理面板中创建自定义部分?

    我希望在 umbraco 6 的管理面板中开发一个自定义用户部分 此部分可以管理用户详细信息以及管理员批准 有人知道如何实现这一点吗 显然它类似于在 Umbraco 4 中这样做 但在 Umbraco 6 中 不是对umbracoApp表
  • 对于画布,.drawImage 函数抛出“TypeError:预期图像或画布”

    我正在尝试在我的不和谐机器人中添加排名卡 为了做到这一点 我正在尝试使用画布 但是当我使用画布时 一切正常 直到我点击 drawImage方法 它给我一个错误 提示 TypeError 需要图像或画布 虽然我已经要求了canvas在全球范围
  • Python if any() 不起作用

    我想检查列表中是否有任何字符串元素phrases包含一组中的某些关键字phd words 我想用any但它不起作用 In 19 import pandas as pd import psycopg2 as pg def test phd w
  • 由 pywin32 生成的 python 可执行文件中的 dll 加载错误

    我使用 py2exe 使用 64 位 python 解释器和 32 位 python 解释器创建了 python 可执行文件 在我的程序中 我使用该模块pywin32 com 因此我在创建可执行文件之前下载并安装了该程序的 64 位和 32
  • Android sqlite,限制数据库中的行数[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我一直有新数据进入应用程序 因此我想将表中的行数限制为 100 条记录 我将其描述为 FIFO 队列 每当有新数据 一次只有几行 进来时 表 底部 的旧数据就会被刷新并删除 由于它是
  • 用汇编语言定义“变量”

    我知道这是一个非常愚蠢的问题 但我有一段时间无法找到答案如何在 GAS AT T 汇编语言中正确声明和定义 变量 例如 我想要 5 个字节的缓冲区 两个 1 字节变量 最初值为 0 2 字节变量为 0 和 2 字节变量为 10 这段代码不能
  • 通过Java访问谷歌照片API

    我对 google API 很陌生 并且遇到了麻烦 我红色文档适用于 Java 的 Google 照片 API 然后我在 google API 控制台中创建了 OAuth 凭据并下载了它 credentials json 文件 之后我尝试访
  • 链接 .so 文件中的旧符号版本

    在 x86 64 linux 上使用 gcc 和 ld 我需要链接到较新版本的库 glibc 2 14 但可执行文件需要在旧版本 2 5 的系统上运行 由于唯一不兼容的符号是 memcpy 需要 memcpy GLIBC 2 2 5 但提供
  • Meteor 的 标签建议

    各位流星用户 在搜索教程和示例应用程序时 我发现了一个使用独特头部结构的教程和示例应用程序 这个特定的示例应用程序甚至没有标记任何地方 只是一个名为head html其中包含上述代码 我还了解到
  • C#同时更新两个文本框?

    假设我有两个文本框 一个包含二进制数据 另一个包含 ASCII 等效数据 如果用户更改其中任何一个 我如何同时更新另一个文本框 而无需按按钮 你必须防止无限循环 asciiTextBox变化binaryTextBox Text这改变了asc
  • 获取或插入 PostgreSQL

    我有一个对象表 其中包含多个属性的列和一个具有唯一 SERIAL 标识符的列 例如 CREATE TABLE person id SERIAL NOT NULL name VARCHAR 16 NOT NULL age INT NOT NU
  • 如何防止Android中移动网站的深度链接?

    我已经为我的所有活动添加了这样的深层链接
  • Android 字符串比较不起作用

    我很难使用 Java 比较 Android 中的两个字符串 我所做的是运行 HTTP get 请求 该请求返回 yes 或 no 并根据该请求决定是否启动新活动 我正在 Async onPostExecute 方法中执行字符串比较 尽管 H
  • 如何检查iframe是否加载失败? jquery?

    我现在有这个 jquery 代码并且工作正常 当用户单击提交按钮时 它会隐藏表单 显示加载器 然后将数据提交到链接并在 iframe 中加载输出 document ready function xxx form validate submi
  • 如何在html代码中使用json文件

    我有 json 文件mydata json 这个文件中是一些 json 编码的数据 我想在文件中获取这些数据index html并在 JavaScript 中处理这些数据 但不知道如何在 html 文件中连接 json 文件 请告诉我 这是
  • Android 自定义按钮状态选择器 XML 文件导致 Resource$NotFoundException

    由于 Resource NotFoundException 我的活动随机崩溃 并且总是由于我的自定义按钮的状态选择器文件之一而导致 而且崩溃是完全随机的 我将多次检查整个应用程序而不会发生崩溃 然后第 n 次转到 Activity 然后它会
  • 使用 jQuery 自定义下拉面板

    我正在尝试为以下问题找到 jQuery 解决方案 通用下拉控件 折叠时看起来像一个普通的选择框 下拉一个自定义面板 您可以在其中放置任何内容 I m not寻找菜单控件 或者可设置样式的选择或列表控件 我需要一个下拉面板可以容纳任何内容的控
  • Group by 模糊字符串与 fuzzywuzzy 和 groupby 匹配

    我有一个随机单词和名称的数据集 我正在尝试对所有相似的单词和名称进行分组 因此给出下面的数据框 Name ID Value 0 James 1 10 1 James 2 2 142 2 Bike 3 1 3 Bicycle 4 1197 4
  • Android中的调用方法

    我正在尝试调用我编写的方法 它编译除了一行 public class http extends Activity httpMethod will not compile public void httpMethod HttpClient h
  • 表中的 ZEND 表单元素还包含数据库中的数据

    你好 我有一个装饰器和表单的问题 它会在表中 并且在这个表中还希望有来自数据库的数据 我不知道如何做到这一点以获得如下所示的结构 可以说 table tr td and here input from zend form td td td