↑これはアフィリエイトではなく私ができる環境問題への取り組みとして入れてみました↑ 
↑クリックで救える生命があるなら私は毎日クリックします。あなたもしてみませんか?↑

« CakePHP: お問い合わせプラグインを作成 | メイン | ソフトウェア開発技術者試験にむけて »

2008年9月 9日

CakePHP: AjaxHelper::editorでonFailureは出来ない?

CakePHP1.1の話。

CakePHP Users in Japanで質問してたんですが、
AjaxHelper::editorで、エラーの場合にどうすればいいのか?で、一応自分なりに答えが出たので、ブログでも書いておこうかなと。ネットで調べても情報がなかったもんで。。。(探すの下手?)

一応、私がぶつかった問題をおさらいしておきますと、例えば重複を許さないカテゴリーの編集などをした場合に、既に存在するカテゴリ名などを入力されたらエラーにして、『そのカテゴリは既に存在します』みたいなエラーメッセージを表示したかったんです。しかし、それがAjaxHelper::editorを使った場合にどうすれば実装できるのかわからなかったわけです。

まず、CakePHPのAjaxHelperは基本的にprototype.jsとscriptaculousを使ってるので、Ajaxヘルパーを使うとこれらを使ったソースを自動的に吐いてくれる。ところが、AjaxHelper::editorメソッドは、scriptaculousのInPlaceEditorのオプションであるonFailureが指定できないっぽい。

/cake/libs/view/helpers/ajax.phpを見てみると、有効なオプションを指定する配列($editorOptions)にonFailureがなかった。editorメソッド内もちょこっといじってみたが(onFailureを加えそうな感じに)、できなかった。まあこれは私が安直にやったからだろう。もっと時間かければできるかも。

ただどちらにしろ、時間がもったいないのとcakeディレクトリ以下のソースに手を付けたくなかったので(単純に面倒だし、バグになったら嫌)、viewのthtmlファイル側でscriptaculousのInPlaceEditorの呼び出しをajaxヘルパーを使わずに書いた。それならonFailure書けるし。

今のところ、AjaxHelper::editorは、自分だけが使うんなら使ってもいいけど(要は運用面でカバー)、一般ユーザに使ってもらうには難しい気がします。エラー制御できんのは致命的だと思うんですが、これってeditorメソッドを使ったエラー制御ってできるんでしょうかね?

投稿者 パトラッシュ : 投稿時刻 : 01:36 個別ページ | コメント(0) | トラックバック(0)

カテゴリ:

トラックバック(0)

このブログ記事を参照しているブログ一覧: CakePHP: AjaxHelper::editorでonFailureは出来ない?

このブログ記事に対するトラックバックURL: http://319ring.net/cgi-bin/mt/mt-tb.cgi/1020

コメントする

ロード近影
Powered by
Movable Type 4.01
blogoole pingサーバ
トップページに戻るページトップへ移動
(C) Copyright 2004 - 2008 patorash All Right Reserved