Controllerのsaveメソッドで悩んでます

2011年4月19日 at 19:53

ブロックの勉強(開発)をしています。

いきなり細かい質問ですが、

ブロックの新規作成ウインドウ(add.phpでウインドウを表示)に、入力項目(form)をつくって、入力してから、「新規」ボタンで作成して閉じるという普通の操作をしたとき、form入力したPOSTしたデータは、controller.phpの、saveメソッドのargumentとして取り出せ、データベースへの登録ができると思うのですが、saveメソッドでPOSTされたargumentが取り出せません。これはなにが問題なのでしょうか。

saveメソッド
function save($data) {
xxx = $data['aaaa']; <=== xxxはNULL
yyy = $_POST['aaaa']; <=== yyyもNULL

}

Firefoxのアドイン、LiveHTTPHeadeでPOSTで送信(aaaa=11)されたことは確認できています。

なにかヒントになる情報でもいただけるとありがたいです。

また、このような状態を確認できるデバッガーのようなものはないのでしょうか。

素人なのでツールの情報なども持っていませんので。

Re: Controllerのsaveメソッドで悩んでます

2011年4月19日 at 21:19
実際のサイトやコードが見れないので何とも言えませんが、コード的には合ってると思います。

print_r($_REQUEST);

とかで見てみると良いかもしれません。
 

Re: Re: Controllerのsaveメソッドで悩んでます

2011年4月19日 at 21:39
print_r($_REQUEST);

はどこに出力されますか?

save() のところに入れてみましたが、なにも出て来ませんでした。
 

Re: Controllerのsaveメソッドで悩んでます

2011年4月20日 at 12:41
原因がわかりました。
フォーム要素に、'level' という名前をつけたのが原因でした。名前を変えたら受け取れました。Concrete5内部で使っているのかもしれませんね。

実は、「いいね!」ボタンのブロックを作っていました。
発表する場がないので、ここでついでに勝手に宣伝します。

ホームページの下の方に置き、ページを閲覧した人が役立った!、またはつまんねと思ったら
5段階の評価点を選んで、ボタンをクリックすると、設定したメールアドレスに通知されるという物です。メールでは、誰(ipアドレスとホスト名)がどのページ(URL)にどんな評価したかが受け取れます。

ダウンロードや使い方などは以下をご覧下さい。
http://tomo.ac/goodstream/concrete5/block-iine.html

日本のマーケットプレースが欲しいなあ。とりあえず、このフォーラムに作ったブロックのカテゴリでもいいんですけど。