「MVC」カテゴリーアーカイブ

Form

[php]
<?php App::import(‘Sanitize’); ?>
<h1>送信フォーム・サンプル</h1>
<?php echo $form->create(null,array(‘type’=>’post’,’action’=>’.’)); ?>
<?php echo Sanitize::stripScripts($form->value(‘HelloForm.text1’)); ?><br />
<?php echo $form->text(‘HelloForm.text1’); ?><br />
<?php echo Sanitize::stripScripts($form->value(‘HelloForm.radio1’)); ?><br />
<?php echo $form->radio("HelloForm.radio1",
array(‘男性’=>’男性’,’女性’=>’女性’,’両性’=>’両性’),
array(‘legend’=>’性別を選択’)); ?><br />
<?php echo Sanitize::stripScripts($form->value(‘HelloForm.select’)); ?><br />
<?php echo $form->select(‘HelloForm.select1’,
array(‘未成年’=>’未成年’,’社会人’=>’社会人’,’その他’=>’その他’),null,
array(‘size’=>4,’empty’=>’※項目を選択’),true); ?>
<?php echo $form->end("送信"); ?>
[php]
[php]
<?php echo $form->create(null,array(‘type’=>’post’,’action’=>’.’));
echo "</pre>";
print_r($form->value(‘HelloForm.date’));
echo "</pre>";
echo "<br/>";
echo $form->dateTime(‘HelloForm.date’,’YMD’);
echo $form->end("送信");
?>
[/php]
[php]
<?php /*?>
<?php echo $form->create(null,array(‘type’=>’post’,’action’=>’.’)); ?>
<?php echo $form->text("HelloForm.text1"); ?>
<?php echo $form->checkbox("HelloForm.check1",array(‘checked’=>true)); ?>checkbox
<?php */?>
[/php]
[php]
<!–チェックボックス–>
<?=$form->create(null,array(‘type’=>’post’,’action’=>’.’)) ?>
<?=$form->checkbox("HelloForm.check1",array(‘checked’=>true)) ?>
<?=$form->label(‘HelloForm.check1’) ?>
<?=$form->end("送信") ?>
<!–チェックボックス_end–>
[/php]
[php]
<?=$form->create(null,array(‘type’=>’post’,’action’=>’.’)) ?>
<?=$form->textarea("HelloForm.check1",array(‘checked’=>true)) ?>
<?=$form->label(‘HelloForm.check1’) ?>
<?=$form->end("送信") ?>
[/php]
[php]
<!–テキストエリア–>
<?=$form->create(null,array(‘type’=>’post’,’action’=>’.’)) ?>
<?=$form->password("HelloForm.check1",array(‘checked’=>true)) ?>
<?=$form->label(‘HelloForm.check1’) ?>
<?=$form->end("送信") ?>
<!–テキストエリ_end–>
[/php]
[php]
<!–フォームタグ–>
<?php echo $form->create(null,array(‘type’ => ‘post’, ‘action’ => ‘.’)); ?>
<?php echo $form->radio("HelloForm.radio1",array(‘ウインドウズ’=>’Windows’,’リナックス’=>’Linux’,’マックOS’=>’MacOS X’),
array(‘legend’=>’OSを選択’,’value’=>’リナックス’)); ?>
<?php echo $form->end("送信"); ?>
<!–フォームタグ_end–>
[/php]
[php]
<!–セレクトフォームタグ01–>
<?php echo $form->create(null,array(‘type’ => ‘post’, ‘action’ => ‘.’)); ?>
<?php echo $form->select("HelloForm.radio1",array(‘ウインドウズ’=>’Windows’,’リナックス’=>’Linux’,’マックOS’=>’MacOS X’),
array(‘legend’=>’OSを選択’,’value’=>’リナックス’)); ?>
<?php echo $form->end("送信"); ?>
<!–フォームタグ_end–>
[/php]
[php]
<!–セレクトフォームタグ02–>
<?php echo $form->create(null,array(‘type’ => ‘post’, ‘action’ => ‘.’)); ?>
<?php echo $form->select("HelloForm.radio1",array(‘ウインドウズ’=>’Windows’,’リナックス’=>’Linux’,’マックOS’=>’MacOS X’),’リナックス’,
array(‘size’=>4,’empty’=>’項目を選んでください’),true); ?>
<?php echo $form->end("送信"); ?>
<!–フォームタグ_end–>
[/php]
[php]
<?php
// optionだけに属性を付ける時
$arr = array(
array(‘name’ => ‘PHP’, ‘value’ => ‘1’, ‘style’ => ‘color: #0000ff;’),
array(‘name’ => ‘Java’, ‘value’ => ‘2’, ‘style’ => ‘color: #0000ff;’),
array(‘name’ => ‘Ruby’, ‘value’ => ‘3’, ‘style’ => ‘color: #0000ff;’),
);
echo $this->Form->input(‘Book.id’, array(‘type’ =>’select’, ‘options’ => $arr, ‘style’ => ‘color: #ff0000’));

?>
[/php]

モデル

モデルの記述

//——————————————————————————–

// 初期データ取得

//——————————————————————————–

function getIni() {

$data = array();

return $data;

}

コントローラ

コントローラの処理

//初期設定/////////////////////////////////////////

if( empty( $this->data ) ){

$this->data = $this->Fruit->getIni(); //初期値設定

}

$this->__setViewEdit(); //ビューに必要な情報を渡す

////////////////////////////////////////////////////////

if( empty( $this->data ) ){ 

・・・もしコントローラのデータがなかったら(画面入力していない状態)

$this->data = $this->Fruit->getIni();

    ・・・コントローラからFruitモデルクラスのgetIni()関数を実行する

View

ビューの処理

[text]echo $appForm-&#62;create();[/text]

・・・Formの始まりです。別に定義している関数でFormの開始タグを出力します。

[php]<?php echo $titleName ?&#62;>[/php]

コントローラでセットした$titleNameが出力

[php]<?php echo $appForm-&#62;input(‘Fruit.name’,array(‘type’=&#62;’text’,’class’=&#62;’wSizeM’))?&#62;[/php]

入力する項目のラベルとテキストボックスを配置

第一引数にこの入力タグに対応する{モデル名.列名}

第二引数は配列になっており、INPUTタグに通常与える属性‘type’ => ‘text’ ・・・ テキストボックス

CSS で事前に設定したWSizeM をclass で指定

echo $appForm->end();

・・・別に定義する関数で、Formの閉じタグが出力されます。

登録処理

<input type=”submit” name=”save” id=”save” value=”登録” />

 登録ボタンのname属性値は「save」、つまり登録ボタンが押された時コントローラにはこ

の名前で登録ボタン押下が通知されます。

通知の受け取り方は下記です。

//登録

if( isset( $this->params[‘form’][‘save’] ) ) {

}

 登録ボタンが押されたら・・・

1 入力チェック

2 入力チェックがOKならDBへ登録、NGならエラー表示

3 DBへの登録後は登録完了メッセージを表示(この時登録したデータが表示されて

いる)