第5回 Smartyを使って実用的なページを作ってみる(その1) - Smarty講座
yossy先生のSmarty講座
Lecutures on PHP
第5回 Smartyを使って実用的なページを作ってみる(その1) (その4)
エラー処理を考える
さて、バリデーションに失敗した場合のエラー処理ですが、先ほど作成したform.tplを以下のように書き換えます。
form.tpl
<p>お問い合わせやご意見・ご要望を以下のフォームにご記入の上ご送信ください。</p>
<form method="post" action="post.php">
<dl>
<dt>お名前</dt>
<dd>
<input type="text" name="name"
value="{$params.name|escape:'html':'UTF-8'}" />
{if $params.errors.name}
<p class="error-message">名前を入力してください。</p>
{/if}
</dd>
<dt>メールアドレス</dt>
<dd>
<input type="text" name="address"
value="{$params.address|escape:'html':'UTF-8'}" />
{if $params.errors.address}
<p class="error-message">アドレスが不正です。</p>
{/if}
</dd>
<dt>お問い合わせ種類</dt>
<dd>
{html_options name="type" options=$params.types selected=$params.type}
{if $params.errors.type}
<p class="error-message">お問い合わせ種類が不正です。</p>
{/if}
</dd>
<dt>お問い合わせ件名</dt>
<dd>
<input type="text" name="title"
value="{$params.title|escape:'html':'UTF-8'}" />
{if $params.errors.title}
<p class="error-message">件名を入力してください。</p>
{/if}
</dd>
<dt>お問い合わせ内容</dt>
<dd>
<textarea name="content" cols="60" rows="5">
{$params.content|escape:'html':'UTF-8'}
</textarea>
{if $params.errors.content}
<p class="error-message">お問い合わせ内容を入力してください。</p>
{/if}
</dd>
</dl>
<input type="submit" value="送信する" />
</form>
まず、各項目のinputタグやtextareaタグの値を設定しています。これは最初にPOSTした値が格納されるようにするためです。POST前にアクセスした場合は空値となります。上記のpost.tplと同様、修飾子escapeを用いていることを確認してください。
次に、各項目の下部に{if}が書かれています。これはバリデーションエラーがあった項目に関してはエラーメッセージを表示する制御を行っています。

ここまでで、問い合わせフォームの完成です。実際にアクセスしてみて問い合わせ内容を入力してみましょう。
正しく送信完了画面が出力されましたでしょうか?

さて第5回はここまでです。Smartyを使って実際に動くページを作ってみた感想はいかがでしょうか?
次回も実際のサイト構築場面を想定したSmartyの使い方を紹介したいと思います。
その他の記事も見る
- 第1回 Smartyの紹介
- 第2回 Smartyを使ってみる(その1:変数編)
- 第3回 Smartyを使ってみる(その2:制御構造編)
- 第4回 Smartyを使ってみる(その3:関数編)
- 第5回 Smartyを使って実用的なページを作ってみる(その1)
- 第6回 Smartyを使って実用的なページを作ってみる(その2)
- 第7回 Smartyの便利な機能を使いこなす(その1:キャッシュ前編)
- 第8回 Smartyの便利な機能を使いこなす(その2:キャッシュ後編)
- 第9回 Smartyの便利な機能を使いこなす(その3:フィルタ編)
- 第10回 Smartyの便利な機能を使いこなす(その4:プラグイン編)
- 第11回 Smartyとフレームワーク(その1:CakePHP編)
- 第12回 Smartyとフレームワーク(その2:Zend Framework編)
- 第13回 次世代のSmarty - Smarty3の紹介
- 第14回 Smartyでケータイサイトを作ってみる
- >>「yossy先生のSmarty講座」一覧ページに戻る
- yossy先生
本名:吉武 正史
パッケージ系ソフトウェア会社で、自然言語処理系の研究やWebアプリケーション、検索連動型広告などの開発に従事。
2006年末にフリーランスとして独立し、現在はPHPによるWeb開発の業務を中心に、コンサルティングや執筆活動などを展開。
サイトURL:http://freeative.jp/





ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!