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パラメーターが設定されます。したがって、その場合は、保存をオーバーライドする必要はまったくありません。

于 2012-09-19T17:01:08.377 に答える