0

これが機能しない理由はわかりませんが、コンポーネントでカスタム ボタン アクション (タスク) が何も実行されません。私のview.html.phpファイルには次のものがあります:

JToolBarHelper::custom('reports.export_csv', 'csv', '', 'CSV', false);
JToolBarHelper::custom('reports.export_mailchimp', 'mailchimp', '', 'Mailchimp', false);

次に、私の ReportsControllerReports ファイルには、export_csv() と export_mailchimp() という 2 つのメソッド (2 つだけでなく、他にもいくつかありますが、関連はありません) があります。ボタンをクリックするたびに、アクションがそれらのメソッドでコードを実行できないと思われる JS エラーが発生します。「bは未定義」についての何か。私のコードと他の Joomla (コア) コンポーネントで使用されているコードとの違いを見つけることができないので、誰かがこの問題に光を当てることができれば、それは大歓迎です (いつものように、Joomla フォーラムはまったく役に立ちません)。

4

2 に答える 2

6

@Cfyzzソリューションは機能します。

これをファイルを表示するために追加しました:

<script type="text/javascript">

    Joomla.submitbutton = function(pressbutton) {
        switch(pressbutton) {
            case 'google':

                window.location = '<?=JRoute::_( 'http://google.com', false );?>';

            break;
            case 'stackoverflow':

                window.location = '<?=JRoute::_( 'http://stackoverflow.com', false );?>';

            break;
        }

    }
</script>

そしてこれはview.html.phpにあります

JToolBarHelper::cancel('stackoverflow', 'Go Overflow');
JToolBarHelper::custom('google', 'checkin', '', 'Go Google', false);

もちろん、この状況では「JRoute :: _(」を使用する必要はありません。理解しやすいように、内部リンクを2つのサンプルに置き換えました。

于 2012-11-13T19:02:58.863 に答える
0

Joomla の JS フレームワークの動作をオーバーライドする必要があり
ます カスタム JS ファイルで関数を使用する必要があります 。
Joomla.submitbutton = function(pressbutton) {
switch(pressbutton) {
case 'export_cvs':
URL = JURI::base.'index.php?option=yourController&task=export_cvs&....
$.ajax({
url: URL, type: post, etc });
}
}

于 2012-02-20T19:38:12.637 に答える