Zend Form:在视图脚本中获取数组元素

发布于 2024-12-18 20:52:23 字数 840 浏览 4 评论 0原文

我想显示每种语言的标题和内容字段。因此,在表单中,我有:

foreach ($languages as $language)
{
    // Add the title element
    $title = new Zend_Form_Element_Text($language);
    $title->setLabel($translate->_('News Title'))
          ->setBelongsTo('title');
    $this->addElement($title);

    // Add the content element
    $content = new Zend_Form_Element_Textarea($language);
    $content->setLabel($translate->_('News Content'))
            ->setBelongsTo('content');
    $this->addElement($content);
}

如果我以通常的方式渲染表单,它会完美地工作:

echo $this->form;

但是,我想单独渲染每个字段,以在中间包含一些 HTML 和其他 jQuery 内容。我的问题是我无法访问这些元素。我尝试过

foreach ($languages as $language)
{
    $this->form->getElement($language);
}

,但它只呈现“内容”元素。我是否覆盖了“标题”元素?

谢谢

I want to display a title and a content field for each language. So, in the form, I have:

foreach ($languages as $language)
{
    // Add the title element
    $title = new Zend_Form_Element_Text($language);
    $title->setLabel($translate->_('News Title'))
          ->setBelongsTo('title');
    $this->addElement($title);

    // Add the content element
    $content = new Zend_Form_Element_Textarea($language);
    $content->setLabel($translate->_('News Content'))
            ->setBelongsTo('content');
    $this->addElement($content);
}

If I render the form in the usual way it works perfectly:

echo $this->form;

However, I want to render each field separately to include some HTML in the middle and other jQuery stuff. My problem is that I cannot manage to access those elements. I tried

foreach ($languages as $language)
{
    $this->form->getElement($language);
}

but it only renders 'content' element. Am I overriding 'title' element?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一影成城 2024-12-25 20:52:23

是的,您正在覆盖 Title 元素。您传递给 new Zend_Form_Element_Text($language); 的参数(在您的情况下为 $language)应该是唯一的。事实上,您可以在需要时使用它来识别和检索元素。

要设置参数,您可以执行以下操作:

foreach ($languages as $language)
{
    // Add the title element
    $title = new Zend_Form_Element_Text('title-' . $language);

   ...
}

Yes, you're overriding the Title element. The parameter you pass to new Zend_Form_Element_Text($language); ($language in your case) should be unique. Infact you can use it to identify and retrieve the element when you need.

To setup the param you can do something like this:

foreach ($languages as $language)
{
    // Add the title element
    $title = new Zend_Form_Element_Text('title-' . $language);

   ...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文