2010年7月21日水曜日

JavaScript:form で submit() できない

 PHP プログラマとして採用されてからはや2週間。「PHP、今回が初めてなんです」と言ったら、一回り以上若い上司が「げぇ」っていう顔をしていたが、高度な「ポータブルスキル」(<-面接のときに社長から「あなたは持っていないと言われた」)のおかげで何とか一山超えた。
 お仕事では PHP プログラマとして活躍中(?)なのだが、会社から外のインターネットにフィルタリングされているのと、バリバリ NDA がかかっている(ネットで検索してもまったく情報がでてこない)ので、ここ何週間が書くことがなかった。
 今日見つけた「某社の html パーサーは閉じタグのチェックがきつい」なんて話はネタとしては面白いのだが...。

 先週までは残業続きで自分の時間など持てなかったのだが、今週に入ってからは早く帰れるようになってきたのでしばらくぶりに自分のお仕事再開。契約社員としての契約書には兼業禁止の項目はなかったし (^^;

----
 久しぶりに GAE のプロジェクトの機能拡張。セレクトボックスを追加して、選択した時点でジャンプするようにしたのだが、さっそくはまる。

 調べた結果、

<select name="book_state" onChange="document.forms[content].submit();">
 でいくはずなのだが、なぜかうまくいかない。

 週の初めの祝日の月曜日に時間をつぶし、今日家に帰ってからしばらくやったがだめ。google 様にお伺いを立てると、何のことはない「select submit エラー」で一発で答えが出た
 form の中の要素に sbumit の名を持つもの (name="submit") があるとアウト。form オブジェクトと解釈する前にメンバ変数として解釈してしまい「submit は fuction ではない」といわれてしまう。
 今回は input hidden のひとつの名前が submit だった。

 あぁ、おいらの貴重な時間を返しておくれ!!

2010年7月3日土曜日

OpenSocial:JavaScript 勉強中

 OpenSocial コンテンツの動的変更は JavaScript が必須と見て、いまさらながら JavaScript を勉強中。

 家の本棚にあった、一番古い JavaScript の本は、2000年11月初版4刷。当時は CGI といえば Perl だったようだ (^^;。

 10年間、一度もビッグメジャーにはならずに、それなりのニーズがあって生き延びてきた言語は珍しい。

 HTML5 で、ビッグメジャーになれるか?

2010年7月2日金曜日

PHP:プログラムを作ってみた

 PHP のマニュアルをだいぶ読み進んだので、実際のコードを少し追ってみたくなった。

 が、適当なソースが見当たらない。いきなり symfony などの大きなものに挑戦すると、挫折するのが目に見えている。

 なので、ちょっとしたコードを書いてみることにした。ネタは 8queen。最初にプログラムを見たのは、確か、PC-8001 用のものを雑誌で。当時は Z80 アセンブラに書き換えて「早い早い!」と喜んでいたものだ。

OpenSocial:書き換えは JavaScript

 iGoogle ガジェットのソースをいくつか見ているのだが、HTML で表示するのは
Loading...
だけで、あとは全部 JavaScript で書いているようだ。

 PC は、まぁよいとして(JavaScritp も覚えなくてはならないという話は別にして)、ケータイはどうするのだろう?やっぱり Flash か?

2010年7月1日木曜日

PHP:リファレンス(参照)とポインタは違うのか

 C と同じような書き方をするので、同じかと思ってた

 こりゃ、クラス定義も C++ と似て非なるものかもしれない。

OpenSocial:動的生成はどうやるの?

 今、OpenSocial を、iGoogle デベロッパー ガイドを見ながら調べているのだが、これってページというかコンテンツの動的生成はどうやるのだろう?

 仮に XML の中身を動的に更新しても、これは各サイトごとにキャッシュされているから更新されない。
 中身を全部 JavaScript で組んで、dom 経由で更新するしかないのか?いや、フレームでも入れるか?

symfony:今日のなぞリスト

コメントで解決済み

アクションとビューがどうやって紐付けられているのかわからない。

こちらのページだと、edit アクションが表示されるときのビューは、editSuccess.php となっているのだが、そう紐付けられる理由がわからない。ディレクトリ構成+ファイル名で決まるのか...。

symfony:実行の必要なコマンドまとめ

 こちらのページのチュートリアルファイルのまとめに続いて、コマンドのまとめ

3:テーブルの生成
3:fixtureを使ったテストデータの投入
4:ディ レクトリのパーミッション
7:post モジュールの作成

 リストにしてみると、意外と少ない。

symfony:設定の必要なファイルのまとめ

こちらのページのチュートリアルをやってみたのだが、一回通しでやったぐらいでは理解できないので、少しまとめてみる。

このチュートリアルで操作したファイルは、
2:config/databases.yml データベースへの接続設定
3:config/doctrine/schema.yml スキーマの定義
3:data/fixtures/fixtures.yml データベースに投入するテストデータ
4:apps/frontend/config/settings.yml CSRFシークレットの変更
7:apps/frontend/modules/post/actions/actions.class.php 記事一覧画面の URL が呼び出されたときの処理
8:apps/frontend/modules/templates/indexSuccess.php 記事一覧画面のテンプレート
9:lib/form/doctrine/PostForm.class.php フォームクラス
9:apps/frontend/modules/post/actions/actions.class.php PostFormを使って入力を処理するアクション

9:apps/frontend/modules/post/templates/newSuccess.php フォームのビュー
10:lib/form/PostForm.class.php バリデーターの設定
11:apps/frontend/modules/post/actions/actions.class.php 記事一覧画面でのアクションの追加
12:apps/frontend/modules/post/templates/editSuccess.php 編集時に表示されるビュー
13:apps/frontend/config/routing.yml ルーティングの設定