閲覧総計:9157  (本日:1  昨日:0)

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(); ?>

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

↓入力画面
入力画面.JPG

↓確認画面
確認画面.JPG

↓一覧画面
一覧画面.JPG

選択肢 投票
参考になった 31  
ふつう 1  
参考にならなかった 4  

添付ファイル: file一覧画面.JPG 933件 [詳細] file確認画面.JPG 892件 [詳細] file入力画面.JPG 944件 [詳細] fileバリデートエラーメッセージ画面.JPG 955件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-08-12 (水) 15:17:28 (1346d)