トップ  > symfony  > フォーム  > 記事

No.983 フォームのテンプレート

フォームのテンプレート

フォームがカスタマイズされたので、表示する必要があります。 フォーム用の~テンプレート~は新しい求人を作るもしくは既存のものを作りたい場合は同じです。 実際、newSuccess.phpeditSuccess.phpテンプレートの両方は とても似通っています:

<!-- apps/frontend/modules/job/templates/newSuccess.php -->
<?php use_stylesheet('job.css') ?>
 
<h1>Post a Job</h1>
 
<?php include_partial('form', array('form' => $form)) ?>
◆フォームテンプレートのカスタマイズ

フォーム自身は_form ~パーシャル~でレンダリングされます。 生成された_formパーシャルの内容を次のコードで置き換えます:

<!-- apps/frontend/modules/job/templates/_form.php -->
<?php include_stylesheets_for_form($form) ?>
<?php include_javascripts_for_form($form) ?>
 
<?php echo form_tag_for($form, '@job') ?>
  <table id="job_form">
    <tfoot>
      <tr>
        <td colspan="2">
          <input type="submit" value="Preview your job" />
        </td>
      </tr>
    </tfoot>
    <tbody>
      <?php echo $form ?>
    </tbody>
  </table>
</form>

include_javascripts_for_form()include_stylesheets_for_form()ヘルパーは フォームウィジェットに 必要なJavaScriptとスタイルシートをインクルードします。


form_tag_for()ヘルパーは渡されたフォームとルート用の<form>タグを生成し オブジェクトが新しいかそうではないかによって POSTもしくはPUTへの~HTTPメソッド~を変更します。 フォームがファイル入力タグを持つ場合これはmultipart属性も考慮します。

結局のところ、<?php echo $form ?>はフォームウィジェットをレンダリングします。

フォームのアクション

フォームクラスをこれをレンダリングするテンプレートが用意されました。 では、これを~アクション~と実際に連携させてみましょう。

求人のフォームはjobモジュールの5つのメソッドで管理されます:

  • new: 新しい求人を作成する空白のフォームを表示する
  • edit: 既存の求人を編集するフォームを表示する
  • create: ユーザー投稿の値で新しい求人を作成する
  • update: ユーザー投稿の値で既存の求人を更新する
  • processForm: createupdateによって呼び出されフォームを処理する (バリデーション、フォームの再投入、 とデータベースへのシリアライズ)



引用元

更新:2009/06/02 09:38 カテゴリ: symfony  > フォーム ▲トップ

FuelPHP

Mac

フロントエンド開発

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

Python

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0