0

アプリで、CakePHP 1.2私は使用しています

<?php $session->flash();?>

「Record edit」のようなメッセージを出力します。それはうまくいっています。

ただし、メッセージをフェードアウトする「Dismiss」というリンクを追加したいと考えています。リンクの作成方法は知っていますが、flass メッセージの出力に挿入する方法がわかりません。

フラッシュ メッセージは、DIV tag. その div に却下コードを挿入したいのですが、方法がわかりません。

4

4 に答える 4

1

これを理解しました:layoutsフォルダーに新しいレイアウトを作成します:

layouts/message.ctp

そのレイアウトに、コンテンツを出力するための呼び出しを含めます。

<?php echo $content_for_layout; ?>

次に、フラッシュ メッセージを設定するときに、使用するレイアウトを指定します。

$this->Session->setFlash('Your record has been created! Wicked!','message');
于 2008-09-24T15:58:22.607 に答える
1

setflash関数を使用したい。setflash に $default の空の文字列を渡すと、メッセージは div でラップされず、そのまま保存されます。このようにして、必要なマークアップを表示したり、ジャスティンが投稿したように、メッセージに別のビュー ページを使用したりして、ビューとコントローラーを混在させないようにすることができます。

于 2008-09-24T16:08:35.077 に答える
1

これは jQuery で実現できます。

$(document).ready(function() {

    $("#flashMessage").each(function() {
        $close = $("<span class='close'>Close</span>");
        $close.click(function () {
            $(this).parent().hide("slow");
        });
        $(this).append($close);
    });

});

少し CSS を使って見栄えを良くする必要がありますが、きっと理解できるはずです。

于 2009-04-14T12:04:09.280 に答える
0

デフォルトの方法は、/app/views/layouts に flash.ctp を作成することです。これにより、/cake/libs/view/layouts にあるデフォルトの flash.ctp が上書きされます。したがって、追加のパラメーターを使用する必要はありません。

ところで: これはすべての CakePHP 標準ビューとレイアウトで機能します。

于 2009-01-12T14:43:38.587 に答える