Pear::QuickForm


applyFilter でユーザ関数を指定することが出来るそうなのですが、

function customfiler($var){
return 処理
}
$form->applyFilter('__ALL__','customfiler');

としたのですが、適用されません。
どうすればいいのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2009/03/19 17:24:57
  • 終了:2009/03/26 03:54:33

回答(1件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/03/19 21:41:15

どうすれば良いのかと問われれば・・・

ソースをさらけ出さない(出せない)のであれば

地道にデバッグするしかないのですけど?


(1)__ALL__ ではなくてフィルタ対象を1つに絞る

これでテストに集中しやすくなるはず。

1つの対象で動作確認が取れたら、ALLでも確認。

ALLでミスが出たらフィールドのどれが原因か1つ1つ対象を絞り込む。


(2)関数名を見直してみる。

customfiler は customfilter の誤記だと思われるけれど

コピペで済むはずの関数名を書き間違うということは考えづらいので

これは本当に使っている関数名ではなく

質問用に考えた関数名ではないかと想像してみる・・・。

だとすれば、本当の関数名が既存関数や予約語などと

ダブっていたりする可能性が考えられるので、見直を。


(3)return に式を書いたりしない。

returnに式を書くのは良いのだけれども

  $var = 処理;

  デバッグ用ログ出力;

  return ($var);

などとするのも簡単だからね・・・。


(補足)PEARのERRORログを見る。

実はこれで解決するのではないかと思ってたりするのだが・・・。

「適用されない」=「フィルタを通らなかったように元のまま」

になる状況を考えるとERRORに返ってきてると思うんですよね・・・。

まさか require_once 忘れてるものがあるなんて事は無いと思いたいが

これは蛇足ですね。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません