掲示板を作ろう その2
フォーム表示ビューを作る
application/views/ ディレクトリに form.php を作成。
じゃんじゃん書き込む。
<?php $username = array( 'name' => 'name', 'value' => set_value('name'), 'size' => '25' ); $email = array( 'name' => 'email', 'value' => set_value('email'), 'size' => '25' ); $comment = array( 'name' => 'comment', 'value' => set_value('comment'), 'rows' => '5', 'cols' => '50' ); $submit = array( 'name' => 'submit', 'value' => '送信' ); ?> <?php echo form_open('board'); ?> <p> <?php echo form_error('name'); ?> <?php echo form_error('email'); ?> 名前:<?php echo form_input($username); ?> Eメール:<?php echo form_input($email); ?> </p> <p>コメント:<?php echo form_error('comment'); ?></p> <p><?php echo form_textarea($comment); ?></p> <?php echo form_submit($submit); ?> <?php echo form_close(); ?>
- 2~24行
- フォームヘルパー関数の form_input() を使って配列にして格納。
4, 10, 16行の set_value('') はエラー時のフォームに入力されたデータの再表示。
値はHTMLタグのname属性、value属性を入れたければ第二引数に値を入れればOK - 27行
- form_open('form') でフォーム作成スタート
- 29~40行
- フォームの内容表示
30, 31, 36行 は form_error('fieldname') で個別のエラー表示。 - 41行
- form_close() でフォーム作成終了
コントローラファイルを作る
application/controllers/ ディレクトリに board.php を作成
フォーム表示ビューを読み込むコードを書き込む
<?php class Board extends CI_Controller { /*public function __construct() { parent::__construct(); }*/ public function index() { $this->load->helper(array('form', 'url')); $this->load->library('form_validation'); $this->form_validation->set_rules('name', '名前', 'required|max_length[20]'); $this->form_validation->set_rules('email', 'メール', 'required|valid_email'); $this->form_validation->set_rules('comment', 'コメント', 'required|max_length[255]'); if($this->form_validation->run() === FALSE) { $this->load->view('templates/header'); $this->load->view('form'); $this->load->view('comment'); $this->load->view('templates/footer'); } else { $this->load->view('templates/header'); $this->load->view('success'); $this->load->view('templates/footer'); } } }
※3/27 17:30追記:15行にルールセット valid_email を追加
- 5行
- コンストラクタを使うかどうかは現時点で不明
なので、とりあえず書いておいてコメントアウト - 10行
- ヘルパー関数 form と url をまず呼び出し。
- 11行
- ライブラリクラスから form_validation を呼び出し。
- 13~15行
- from_validation のルール設定。
ルール設定の詳細は ここ を参照しました。 - 17行:入力内容に誤りがあったときの処理
- $this->form_validation->run() === FALSE
これは ここ を参照。 - 18~19行:入力内容に誤りがあったときの処理
- ビュー (header.php, form,php, comment.php, footer.php) を呼び出し。
- 22~25行:入力内容が正しいときの処理
- ビュー (header.php, success.php, footer.php) を呼び出し。
header.php と footer.php はテンプレート化しちゃって読み込ませた方がいいだろうと作ってみました。
ページ遷移がないのでほとんど蛇足。
勉強も兼ねてってことでひとつ!
次はデータベースへの出入力あたりかな。