0

我的表单目前有一个保存按钮,但没有应用按钮。我试图插入一个,但它的作用与保存相同。有任何想法吗?这是代码:

    <div class="formelm-buttons">
        <button type="button" onclick="Joomla.submitbutton('propform.save')">
            <?php echo JText::_('JSAVE') ?>
        </button>
        <button type="button" onclick="Joomla.submitbutton('propform.cancel')">
            <?php echo JText::_('JCANCEL') ?>
        </button>
    </div>
4

1 回答 1

0

简而言之:

$this->setRedirect($this->getReturnPage());从您的保存功能中删除。

它中断的原因适用:

所以这是您评论中的功能:

public function save($key = null, $urlVar = 'id')
{
    $result = parent::save($key, $urlVar); // If ok, redirect to the return page.
    if ($result) {
        $this->setRedirect($this->getReturnPage());
    }
    return $result;
}

我知道这个函数被放置在一个扩展 JControllerForm 的控制器中。现在,这是非常糟糕的文档,但是:JControllerForm::save($key, $urlVar) 将为您设置重定向。

这意味着当您运行时,$this->setRedirect($this->getReturnPage());您将覆盖 JControllerForm 已经为您完成的工作。保存应用之间的区别在于成功保存后重定向到哪里。

因此,如果您删除该setRedirect,则应用程序应该开始工作(如果其他一切正常)。此外,如果您为此保存正确构建了表,将为您设置 $urlVar 参数。因此,如果是这种情况,您根本不需要覆盖save

于 2012-09-19T17:01:08.377 回答