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