addRuleするときに下記のようにコーディングするとvalidate()を呼び出すときに、
“addFormRule”で指定した同じクラスのvalidateCallBackが最後に起動される。
class qf_form extends HTML_QuickForm{
function buildRule(){
//コールバック関数
$this->addFormRule(array($this, 'validateCallBack'));
}
function validateCallBack( $from_data ){
$errors = array();
print_r( $form_data );
return $errors;
}
}
参考記事
http://pear.plus-server.net/package.html.html-quickform.html-quickform.addformrule.html
出力するときのHTMLコードがXHTMLの時には、下記のコードが必要になります。
header('Content-Type: application/xhtml+xml');
ただし、同HTMLコードをPCで確認するとき上記の記述があると、FireFoxはクラッシュします。また、Chormeでも正常に表示できない場合があります。
上記のコードはあくまでもDocomoのみ出力するように制御する必要があります。
さて、PHPでWebアプリケーションを作っていくわけですが、PHPで具体的にどのような処理を描いていけばいいのでしょうか?
Webアプリケーションはブラウザで閲覧できるようなデータを出力し、ブラウザで入力されたデータを受け取り処理をおこないます。
ブラウザで閲覧できるようなデータとは、HTML形式のデータですね。
とりあえず、PHPでHTMLを出力できるようになりましょう!
PHPの特性として、PHPのコードはHTMLの中に記述することが出来ます。どういう事かというと…
下記のソースを御覧ください。
下記のソースをhello2.phpとして公開フォルダに設置するし、Webブラウザで”http://localhost/hello2.php”を見てみましょう。
<html>
<head>
<title>Hello</title>
</head>
<body>
<?php echo "Hello" ?>;
</body>
</html>
画面には”Hello”と表示され、ページのタイトルには”Hello World”となっているはずです。
hello2.phpのPHPのコードは6行目の”"だけです。このようにHTMLコードの中にPHPのコードを記述することが出来ます。
が、この書き方はPHPの処理が複雑になるとどのに何を書いているのかわからなくなるのでやめておいたほうがいいでしょう。
では、どうするのか?
単純にプログラム的にHTMLを出力するならば…
<?php
echo "<html>
<head>
<title>Hello</title>
</head>
<body>
Hello
</head>
</html>";
?>
という感じになります。
しかし、いちいちプログラムの中にHTMLコードを記述しなくてはなりません。面倒だし、ソースコードが見にくくなってしょうがないですね。
これを解決してくれるのが、テンプレートファイルという概念です。
HTMLのテンプレート(雛形)を別ファイルに作成しそれを読み込み、出力するという方法です。
上記の例で言うと
HTMLテンプレートファイル(Hello.tpl)
<html>
<head>
<title>Hello</title>
</head>
<body>
Hello
</head>
</html>
Hello.php
<?php
echo file_get_contents( 'Hello.tpl' );
?>
こうなります。
こうすることで、プログラムとHTMLコードを完全に隔離することができます。
スッキリしたコーディングでしょ?(笑)
私が経験した職場では、全部がこのようにプログラムとHTMLコードを分けてプログラミングを行っていました。こうすることで、デザイナとプログラマの役割分担も明確になるので作業が効率よく進むというメリットもあります。
そんなこんなで、今回はここまでです。
Webアプリケーションを作成する場合、Webサーバーというサービス上でPHPを動作させる必要があります。
PHPは、前回インストールしているので今回はWebサーバをインストールしましょう。
Webサーバのインストールの詳細は下記の記事を参考にするといいでしょう。
http://pocketstudio.jp/log2/2007/01/windows_apache_224_php_520.html
WebサーバApache(アパッチ)がインストールできたら、もう一度PHPのインストーラを起動し、PHPをWebサーバで動作させるように”Web Server Step Up”の項目を実行します。これで、Apacheのhttpd.confにPHPが動作できる設定が自動で記載されます。
一旦サーバを再起動すると、設定が反映されPHPがサーバ上で動作するようになっているはずです。
さて、上記のインストールを終えた時点で貴方のパソコンがWebサーバーとして機能しているわけです。
適当なWebブラウザを立ち上げて
“http://localhost”
と入力してください。正常にWebサーバが動作していれば何か表示されるはずです。
動作していない場合は、”404 Not Found”と表示されいるかもしれません。その場合は、インストール手順を見なおして下さい。
そして、貴方のパソコンのどこかのフォルダがWebサーバの公開フォルダとなっています。そのフォルダ内に置かれたファイルはWeb上に公開されると同じなので注意が必要です。もっとも、市販されているルータを通してインターネットに接続している場合はその心配はありません。(ルータがインターネットに公開されないようにしてくれています)
で、どこのフォルダが公開フォルダになっているかは”http.conf”の”DocumentRoot”という文字を検索するとそこに記載されています。
公開フォルダに前回作成したPHPを起き、Webブラウザで
“http://localhost/Hello.php”
と入力すると、前回コンソールで出力された文字がWebブラウザに表示されているはずです!
これで、Webアプリケーションを作成する開発環境は整いました!
お疲れ様です。
●スクリプトで、オブジェクトの色を変更することは出来ない。
→オブジェクトの色を変更する場合は、シンボルに変換した後ツール上で色を変更するしか無い。
ランダムに色を変える場合、フレーム別に色を変更し、そのフレームのジャンプさせることで色違いのパターンを作るしか無い。
組み合わせがあった場合、全パターンの色違いを作ることになる。が、これ以外の実装方法は見つけられなかった。