1

我正在编写一个 joomla 组件,该组件将有一个用于注册的多步骤表单,第一个包含 2 个单选按钮。将变量从单选按钮传递到步骤 2 的最简单方法是什么?当用户提交第一个表单时,控制器被调用以显示第二步,有没有更简单的方法呢?提前致谢。

代码:

step1 表单(查看代码):

<form name="step1" action="<?php echo JRoute::_('index.php option=com_mycomponent&task=mycomponent.register'); ?>" method="POST">
<input type="radio" name="placement" value="0" checked /> Option 1<br />
<input type="radio" name="placement" value="1" /> Option 2<br />
<div class="next" onClick="document.forms['step1'].submit();"></div>
</form>

处理 mycomponent.register 的控制器代码

class mycomponentControllermycomponent extends JController

{

    public function register()

    {
    $this->setRedirect(JRoute::_('index.php?option=com_mycomponent&view=default&layout=step2', false));
    }

}

我想将值从收音机传递到 step2 ;)

希望我没有错过一个关于这个的话题,至少找不到一个!

4

2 回答 2

2

在 register 方法中,您可以访问单选值,然后将其通过链接传递给您的视图:

    public function register()
    {
        $placementOption = JRequest::getInt('placement', 0, 'post');

    $this->setRedirect(JRoute::_('index.php?option=com_mycomponent&view=default&layout=step2&placement=' . $placementOption, false));
    }

在您对第 2 步 (view.html.php) 的看法中,您可以以相同的方式访问该选项(这次的值是 GET 而不是 POST):

$placementOption = JRequest::getInt('placement', 0, 'get');

$this->assignRef('placement', $placementOption);

最后,如果您想在视图模板中访问它(例如 default.php)

<?php echo $this->placement; ?>
于 2012-05-09T11:01:23.023 回答
0

我刚刚在 Joomla 中解决了类似的问题。我所做的很简单,而且效果很好。

1)我在文章的html编辑器中创建了一篇带有表单的文章。

2)在这篇文章的html代码中,对于表单我给了form method="POST" action="child.php"。

3) 现在,child.php 是我的 joomla 安装文件夹中的一个页面,它有一个与我的模板布局、链接和文章等完全相同的 html 页面。所以,我将 child.php 设置为一个看起来与我网站上的任何其他页面一样的页面,而且里面还有一个表格。

4)在这个child.php里面有一个表格。然后我想用里面的表单从文章中填充的字段我给了 value="?php echo $_POST['VARIABLE']; ?",其中 VARIABLE 是我的 html 表单文章的字段名称。

所以,就是这样,现在我的文章 html 表单将我重定向到 child.php 页面,并且 child.php 填充了我之前的 html 文章的变量。

于 2013-01-18T10:25:22.673 回答