【问题标题】:How do I get the HTML from agile toolkit virtual page如何从敏捷工具包虚拟页面获取 HTML
【发布时间】:2017-04-19 19:09:58
【问题描述】:

我正在使用敏捷工具包 4.3.2。我有一个包含表单的虚拟页面。

我创建了一个按钮:

$this->button = $this->addButton('')
            ->setAttr('title', 'Show Virtual Page');

我将虚拟页面绑定到这个按钮:

$vp = $this->button->add('VirtualPage', $size)->bindEvent('Show Virtual Page', 'click');

我想要的是在不按按钮的情况下获取虚拟页面的 HTML。我怎样才能做到这一点?我想将 HTML 放在一个变量中以将其传递到另一个位置以便稍后呈现它。

请告诉我如何在不按按钮的情况下获取虚拟页面的 HTML。我想在页面加载后拥有内容。我该怎么做?

【问题讨论】:

  • 我看不出您需要将 VirtualPage 添加到按钮的原因。您能否更详细地解释您要完成的工作?
  • 我对这个问题的回答是对您的回答。

标签: php atk4 agiletoolkit


【解决方案1】:

这是如何在页面中添加按钮的示例,当您单击该按钮时,将打开对话框,您将在其中看到包含您想要的任何内容的虚拟页面:

$b = $page->add('Button')->set('Open popup');
$vp = $b->add('VirtualPage')
    ->bindEvent('My Cool Title','click')
    ->set(function($page){
        $page->add('LoremIpsum');
    });

我不确定您为什么要获取该 VirtualPage 的 HTML。无论如何,您必须避免直接使用 html 代码:)

无论如何,在没有点击按钮的情况下,VirtualPage 根本不会被渲染。

在某些情况下你可以尝试使用$vp->getPage()->getHTML();

【讨论】:

  • 我在弹出窗口(模态)中有一个自定义表单。我想将 HTML 从该模式复制到一个变量,以便稍后显示。代码:$vp->getPage()->getHTML();显示带有空头和正文标签的空 html。
  • 您所说的“...稍后显示”是什么意思?以后什么时候? VirtualPage 是一个页面,而不是表单或简单视图。如果它被特定的 URL 调用(参见 $vp->getURL()),那么它将用自己的输出替换应用程序的原始页面。
  • 你就在这里。这不是一个好的解决方案。我的实际问题是没有解决方案来获取表单 HTML 以便在页面上我想要的位置手动显示它。例如,我正在为页面上的每个网格列呈现一个表单。
  • 所以你想在网格列中添加表单?这可能很棘手,因为 atk grid 不支持开箱即用。但总是有解决方案,例如,自定义网格模板和自定义列格式化程序,在网格模板中添加表单。无论如何 - 在这种情况下不需要 VirtualPage。你到底需要完成什么?
猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多