確認画面の続きです。 まず、フォーム画面のcontrollerはこんな感じ。 users_controller.php function admin_form($id = null) { $template = "admin_form"; if (!empty($this -> data)) { //確認画面から戻った場合 $trans_id = $this -> data["User"]["trans_id"]; $this -> data['User'] = $this -> FormCommon -> get_form_data_from_session($this -> params['controller'], $trans_id); $this -> User -> create($this
CakePHPで確認画面をはさんでみます。 いろいろググってみると 入力フォーム:フォームのhiddenで「mode→confirm」を送信。 add/edit関数内でmode=confirmなら確認画面表示。 確認画面から「mode→regist」と受け取ったデータを再びhiddenで登録画面に送信 DB登録 と言うのが一般的な様です。ただ、この方法だと問題が・・・ 登録/編集毎にcontrollerは別の関数を使って処理することになる 確認画面からhiddenで入力データを再送信するため入力データが丸見えになる。この場合、登録画面でもvalidationが必要になるため、パスワードをハッシュ化する前の状態で送信する必要がある。と言うことはソース内にパスワードの平文が入ることに・・・ 1に関してはDRYが基本なので、ほぼ同じ関数を2つ書く気はありません。共通部分を別関数にしてadd/ed
フォームを入力後、すぐに保存ではなく一度確認画面を表示させたい場合のやり方。 こちらに詳しいやり方が書いてあります。 http://www12.atwiki.jp/nezox/pages/6.html ポイントは 入力フォームで <input type="hidden" name="mode" value="confirm"> とする。 コントローラの add アクションでバリデーションチェック後に if (@$_POST["mode"]=="confirm") { // 確認画面を表示する $this->render('confirm'); } else { // 保存処理 if ($this->User->save($this->data)) { $this->flash('Your post has been saved.', '/users'); } } 確認画面の view を
function add() { if(empty($this->data)) { $this->set('login', null); } else { $this->cleanUpFields(); if($this->Login->save($this->data)) { if(is_object($this->Session)) { $this->Session->setFlash('The Login has been saved'); $this->redirect('/login/index'); } else { $this->flash('Login saved.', '/login/index'); } } else { if(is_object($this->Session)) { $this->Session->setFlash('Please correct er
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く