[Codeigniter-users] Validationについて

Back to archive index

Takeshi Amano p****@takes*****
2008年 8月 19日 (火) 12:12:31 JST


天野です

天野はこちらを使う事が多いですね。

> $this->input->post('hoge')

> $this->validation->hoge = hoge2;

こういう代入できたんですか、知らんかった。

> $_POST['hoge'] = $this->validation->hoge;

こうやってPOSTの値を設定した場合、GETリクエストで最初に編集ページに
きた場合validation rulesが有効になってしまい、必須項目が足りないよん
と言われてしまうので、以下の様な処理を追加して、最初にGETで
来たときはvalidation rulesを無効にする必要があります。

編集用の関数は以下の用にすることがほとんどです。

	function add() {
		$this->load->library('validation');

		if ($this->input->post('submit')) { //if ($_POST) { でも可
                       //フォームがsubmitされたらこっち
			$rules['username'] = 'required';
			$rules['email'] = 'valid_email';

			$this->validation->set_rules($rules);

			$fields['username'] = 'ユーザー名';
			$fields['email'] = 'メールアドレス';

			$this->validation->set_fields($fields);
		} else {
           //こっちは最初にGETでページがロードされたときに実行
          //ここでデフォルトの値をセットする
			$_POST['sex'] = SEX_MALE;
			$_POST['category'] = 'default_category';
		}

		if ($this->validation->run() == false) {
                       //最初にGETで来たときと、validationが通らなかった場合はこっち
		       $this->load->view('admin/user_view');
		} else {
                       //validationが通った場合はこっちでデータを保存しておしまい
			$user_insert->username = $this->input->post('username');
			$user_insert->category = $this->input->post('category');

Takeshi Amano

Ads are the cave art of the twentieth century - Marshall McLuhan




Codeigniter-users メーリングリストの案内
Back to archive index