簡単なフォームの作成

いよいよお手軽なフォームの作成です。
今回は、1つの画面で入力と表示をおこないます。


4つのファイルで構成します。

  • エントリポイント
  • アクションクラス
  • maple.ini設定ファイル
  • テンプレートファイル

エントリポイント

htdocs/test/form.php を作成します。

<?php
error_reporting(E_ALL);
//error_reporting(0);

/**
 * MapleのBaseディレクトリの設定
 */
define('BASE_DIR', dirname(dirname(__FILE__)) . '/..');

/**
 * Debugフィルターを発動させるかどうかの設定
 */
define('DEBUG_MODE', 0);

/**
 * Mapleの設定ファイルの読込み
 */
require_once BASE_DIR . "/webapp/config/maple.inc.php";

/**
 * このアプリの独自設定
 */
define('ACTION_KEY',     'action');
define('CONFIG_FILE',    'maple.ini');
define('DEFAULT_ACTION', 'test_form');
define('LOG_LEVEL',      LEVEL_TRACE);

/**
 * フレームワーク起動
 */
$controller =& new Controller();
$controller->execute();
?>


DEFAULT_ACTION を test_form としました。
これで、アクションクラスの命名もすべてきまります。

アクションクラス

webapp/modules/test/form/Form.class.php を作成します。

<?php
class Test_Form {
    var $name;
    var $email;

    function execute() {
        return 'success';
    }
}
?>


属性には、フォームのエレメントのリクエストパラメータ名を登録します。
今回は、<input type="text" name="name"> <input type="text" name="email"> の2エレメントを作成します。

maple.ini設定ファイル

とりあえず、何もしないフォームを作成するだけなので、[View]だけです。

[View]
success = "test/form.html"

テンプレートファイル

フォームのテンプレートを作成します。
今回は、上部にフォーム、下部に表示部分を作成しています。

<html>
<body>
form test
<form method="post" action="test/form.php">
Name:<input type="name" name="name" value="{$action.name}"><br>
Email:<input type="name" name="email" value="{$action.email}"><br>
<input type="submit" name="dispatch_test_form" value="Submit">
</form>
<hr>
Name:{$action.name}<br>
Email:{$action.email}<br></body>
</html>


入力値は、アクションクラスの属性に自動的に、setterを通じてセットされるので。
{$action.name}で取り出すことができます。


簡単でしょ?
次は、Converterを使って入力変換をしてみます。