TOPシステム開発> Ajaxからの登録(/ajax_regist)




まるごとPerl!
使ってわかるCatalyst

第7回:Ajaxで登録フォーム
著者:アドウェイズ  加藤 敦   2006/9/25
1   2  3  次のページ
Ajaxからの登録(/ajax_regist)

   今回のAjaxは、テキストボックスに値を入れて、フォーカスが外れたら登録するというものにしました(リスト24)。Ajaxからはajax_registが呼び出されますが、ajax_registは登録処理を行うだけなので、regist_executeにforwardします。また、このAjaxの場合はdivブロックを入れ換えるだけなので、bookmark_list.tt(リスト25)という、ブックマーク一覧部分だけを表示するテンプレートを指定しています。
リスト24:Ajaxからの登録
sub ajax_regist : Local{
   my($self, $c) = @_;
   $c->forward('regist_execute');
   $c->stash->{template} = 'bookmark_list.tt';
}

リスト25:bookmark_list.tt(ブックマークの一覧部分)
bookmark_list.tt(ブックマークの一覧部分)
(画像をクリックすると別ウィンドウに拡大図を表示します)

   Ajaxでdivブロックを入れ換える処理を行う場合、その部分だけのテンプレートを作り、そのテンプレートは全体のテンプレートからインクルードするようにすると簡単です。

   また今回はPlugin::Prototypeを使用してAjax部分を作成しています。header.tt(リスト26)の「c.prototype」から始まっている部分がその機能になり、テキストボックスが更新されると、ajax_regist/をリクエストして、bookmarkというidのdivブロックを変更しています。

リスト26:header.tt(フォーム入力部分)
header.tt(フォーム入力部分)
(画像をクリックすると別ウィンドウに拡大図を表示します)


削除の実行(/delete_execute)

   findでDBIx::Class::ResultSetオブジェクトを取得し、deleteメソッドを使うだけです(リスト27)。見つからなければ、エラーメッセージを表示します。

リスト27:削除の処理
sub delete_execute : Local {
   my($self, $c) = @_;
   if(my $r = $c->model('DBIC::bookmark')
         ->find({bookmark_id => $c->req->param('bookmark_id')})){
      $r->delete();
   }else{
      $c->stash->{msg} = 'delete error - not found -';
   }
   $c->forward('index');
}


1   2  3  次のページ

書籍紹介
まるごとPerl! Vol.1

まるごとPerl! Vol.1 PerlでWeb2.0をプログラミングするための最新テクニックを徹底解説!
「Web2.0時代のPerlプログラミング」を徹底解説! 本書では、Webアプリケーションを迅速に開発するためのフレームワークから、Web APIやJSON、RSS、AjaxでWebを自在にRemixするテクニックまで、新時代のPerlの開発技を紹介します。モジュールや文字コードの扱いといった基礎も解説。また、人気サービスの「はてなブックマーク」と「livedoor Reader」の中身を開発者が見せます。来るべきPerl 6も予習できます。PerlでWebを2倍楽しもう!

発売日:2006/08/25発売
定価:\1,995(本体 \1,900+税)
株式会社アドウェイズ 加藤 敦
著者プロフィール
株式会社アドウェイズ   加藤 敦
アフィリエイトシステムやモバイルサイトの構築などを経て、現在、技術マネージャーとして新規サービスの設計、システムの標準化などに携わる。個人的にCPANモジュールの開発や、オープンソースのプロジェクトに参加している。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第7回:Ajaxで登録フォーム
Ajaxからの登録(/ajax_regist)
  その他のアクション
  プラグインの作り方
使ってわかるCatalyst
第1回 Catalystの導入
第2回 サンプルアプリケーションの作成準備
第3回 コントローラクラスへの理解を深める
第4回 Catalystの最重要オブジェクト
第5回 テンプレートの作成
第6回 登録フォームの作成
第7回 Ajaxで登録フォーム

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です