チュートリアル その3

なにかインストールの最中に変なところを弄った。またはチュートリアル、ユーザガイドを進めているときに弄ったかで変なことになってるんじゃないかと思い CodeIgniter を再インストールしてみたところform_open()動きました(:D)rz

_remap()あたりで変なところ弄ったかもしれないなぁ

これでいちいち絶対パスを入力しなくて済むね。やった!

掲示板を作るうえでフォームは欠かせないだろうと思ってユーザガイドを見ていたら

  • フォームヘルパ
  • フォームバリデーション

なるものを発見。これは使えそうだ。

そもそもヘルパってなんぞ

参照:ヘルパー関数 : CodeIgniter ユーザガイド 日本語版

$this->load->helper('name');

複数の呼び出し方は配列にして格納

$this->load->helper(array('helper1', 'hepler2', 'helper3'));
フォームヘルパってなんぞ
$this->load->helper('form');

HTMLのformタグ的なものを直接打ち込まなくても

form_open('email/send');
<form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send" />

form_open() で下に書いたのと同じようなことをしてくれる
属性、隠しフィールドも第二、第三引数に連想配列で格納すれば付与できる。

とても便利ですやん

フォームバリデーションってなんぞ

参照:フォームバリデーション(検証) : CodeIgniter ユーザガイド 日本語版
validation = 検証
すなわちフォームの入力内容を検証してくれるクラス
呼び出し方は

$this->load->library('form_validation');

ライブラリから form_validation を呼び出すって形かな?
これもライブラリにある他のクラスを複数使いたければ、配列にして格納すればOKだと思う
フォームの内容をチェックしたい時にはコントローラで呼び出し

$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');

ビューには

<?php echo form_validation('セグメント名'); ?>

submit ボタンを押した時の画面遷移先を指定できると。

この時点ではフォームの入力内容のチェックするルールが設定されてないのでルールを設定する
そこで使うのが

$this->form_validation->set_rules('name', '表示させるフィールド名', 'ルール')
  • 'name' はHTMLのformタグのname="ここに当たる"
  • '表示させるフィールド名' はエラーが出たフォームの表示させたい名前
  • 'ルール' はエラー時の表示コメント。language/japanese/form_validation.phpに設定された内容を表示

 内容を変えたければ、

$this->form_validation->set_message('ルール', 'ここにコメント');

とすれば変えられる。

他にも色々便利なルールがあるみたい。すてきやん。