#freeze
閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)


CakePHP 1.2.3  encoding:UTF-8

 日本特有との事ですが、ほとんどのWebツールでは、入力内容の「確認画面」をはさむのが
定石となってます。 CakePHPは外国製ですので bake でも「確認画面」を作ってくれません。
 そこで、「確認画面」の作り方の一例として、ブログチュートリアルに「確認画面」を追加して
みました。  09/05/16

教材:ブログチュートリアル
http://book.cakephp.org/ja/complete/219/Blog

/app/models/post.php
 <?php
 class Post extends AppModel
 {
     var $name = 'Post';
     var $validate = array(
         'title' => array(
             'rule' => array('minLength', 1)
         ),
         'body' => array(
             'rule' => array('minLength', 1)
         )
     );
 }
 ?>

/app/controllers/posts_controller.php
 <?php
 class PostsController extends AppController {
 
     var $name = 'Posts';
 
     function add() {
         //var_dump($_POST);
         if (!empty($this->data)) {
             if ($this->data['Post']['mode'] == 'confirm') {
                 $this->Post->set($this->data);
                 if ($this->Post->validates()) {
                     $this->render('confirm');
                 }
             } else {
                 if($this->data['Post']['mode'] == 'Save Post') {
                     $this->Post->create();
                     if ($this->Post->save($this->data)) {
                         $this->flash('Your post has been saved.','/posts'); 
                     }
                 }
             } 
         }
     }
 
 }
 ?>

/app/views/posts/add.ctp
 <h1>Add Post</h1>
 <?= $form->create('Post'); ?>
     <?= $form->input('title'); ?>
     <?= $form->input('body', array('rows' => '3')); ?>
     <?= $form->hidden('mode', array('value' => 'confirm')); ?>
 <?= $form->end('Save Post'); ?>

/app/views/posts/confirm.ctp
 <h1>この内容でよろしいですか?<h1>
 <br>
 <?= $form->create('Post', array('action' => 'add', 'type' => 'post')); ?>
     タイトル:<?= h($form->value('Post.title')); ?><br>
               <?= $form->hidden('Post.title'); ?>
     本文:<?= h($form->value('Post.body')); ?><br>
           <?= $form->hidden('Post.body'); ?>
     <?= $form->submit('戻る', array('name' => 'data[Post][mode]')); ?>
     <?= $form->submit('Save Post', array('name' => 'data[Post][mode]')); ?>
 <?= $form->end(); ?>

↓バリデート エラーメッセージが表示された画面
&ref(バリデートエラーメッセージ画面.JPG);

↓入力画面
&ref(入力画面.JPG);

↓確認画面
&ref(確認画面.JPG);

↓一覧画面
&ref(一覧画面.JPG);


#vote(参考になった[30],ふつう[1],参考にならなかった[4])
#vote(参考になった[31],ふつう[1],参考にならなかった[4])

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS