CodeIgniter ちょいメモ

投稿者:isc_blog

よくあるウェブアプリケーションの画面遷移
入力→確認→登録完了
的なもの

確認画面で隠しフィールドで・・・みたいなこと考えるといちいいコーディングが大変なんですが

CodeIgniterのFormヘルパが解決してくれました。

ユーザガイドより抜粋

隠しフィールドの追加
次のように、第3パラメータに連想配列で渡すことで、隠しフィールドを追加できます:

$hidden = array(‘username’ => ‘Joe’, ‘member_id’ => ‘234’);

echo form_open(‘email/send’, ”, $hidden);
上の例は、次のようなフォームを生成します:
[html]
<form method="post" accept-charset="utf-8" action="http:/example.com/index.php/email/send">
<input type="hidden" name="username" value="Joe" />
<input type="hidden" name="member_id" value="234" />
[/html]

ふむふむなるほどなるほど・・・と思いControllerクラスでデータを配列に格納
[php]
・・・
$req_data = array();
// 全部「test」って入力されてます
$req_data[‘title’] = $this->input->post(‘title’);
$req_data[‘name’] = $this->input->post(‘name’);
$req_data[‘memo’] = $this->input->post(‘memo’);

$data[‘req_data’] = $req_data;
・・・
[/php]

ビューでこんな記述
[php]
<?php $attributes = array(‘class’ => ‘form’, ‘id’ => ‘form’); ?>
<?php echo form_open(‘regist’, $attributes, $req_data); ?>
[/php]

すると・・・こんなHTMLになります。
[html]
<form action="http://~your-domain~/index.php/regist" accept-charset="utf-8" name="form" method="post">
<div class="hidden">
<input type="hidden" name="title" value="test" />
<input type="hidden" name="name" value="test" />
<input type="hidden" name="memo" value="test" />
</div>
[/html]
素敵やん!

2011年7月1日