jectoのブログ -10ページ目

jectoのブログ

コンピュータ関連の
記事を載せています。
@ 日常生活とかも

まず cakephp1.3で詳しくページ送りを実装する方法がなかったので詳しく
説明していきます。


コントローラ customer_controller.php
アクション ajax_list
レイアウトファイル ajax_list_layout.ctp
ビューファイル ajax_list.ctp

1. javascriptのライブラリ prototype を導入する

1-1 http://www.prototypejs.org/ のサイトの「Download」をクリックして表示されるスクリプトの内容を
「prototype.js」ファイルとして保存する。このファイルをcakephpのapp/webroot/js 直下に配置する

   1-2 ビューファイルまたはレイアウトファイルにprototype.jsを読み込むように指定する
<?php echo $this->Html->script('prototype'); ?>

2.pagenatorのオプションにAjaxで更新したい dev要素を指定する
 2-1 レイアウトファイル ajax_list_layout.ctp 必要な部分だけを抜粋
<head>
<?php echo $this->Html->script('prototype'); ?>
</head>
<body>
<div id="ajax_list">
<?php echo $content_for_layout; ?>
</div>
</body>

2-2 ビューファイル ajax_list.ctp
<?php $this->Paginator->options(array('update' => 'ajax_list')) ?>
           補足:paginatorヘルパーを使う前に喜寿する  ajax_list部分に更新したい
div要素のidを指定する

ソートつき一覧の見出しはAjax化する前と変わらない
<?php echo $this->Paginator->sort('id');?>


一覧表示もAjax化する前の一覧表示のコードでok


ページ送りのリンクもAjax化する前の一覧表示のコードでok
<div class="paging">
<?php echo $this->Paginator->prev('<< ' . __('previous', true), array(), null, array('class'=>'disabled'));?>
| <?php echo $this->Paginator->numbers();?>
|
<?php echo $this->Paginator->next(__('next', true) . ' >>', array(), null, array('class' => 'disabled'));?>
</div>


3. コントローラの変更
customer_controller.phpファイル
3-1 コンポーネントに RequestHanler を追加する
var $components = array('RequestHandler');

3-2 PaginatorをAjax化するように変更
function ajax_list() {
$this->layout = 'ajax_list_layout';
$this->Customer->recursive = 0;
$this->helpers['Paginator'] = array('ajax' => 'Ajax')
              補足:この部分を追加する。 setメソッドより前に記述しないとAjaxとして動かない;
$this->paginate = array('limit' => 1);
$this->set('customers', $this->paginate());
}










cakephp 1.3.9
php 5.2.5
os centos 5.6

上記の環境でcakephpのbakeの仕方

あらかじめ config/database.phpでデータベース接続の設定をして、

データベースとテーブルを作成しておくこと。

php cake/console/cake.php bake -app <アプリケーションルートのパス>

Would you like to create some basic class methods の質問に

yesと答えるとアクションメソッドを定義して書込みしてくれる





こいち時間手間取ったので、忘備録を残します目

Eclipse の Javaプロジェクトで ファイルのパスを指定する場合

相対位置指定のパスの場合は、プロジェクトフォルダから始まる

Document doc = db.parse(new FileInputStream("Lesson8/Sample.xml"));

とした場合

プロジェクト名のフォルダ/Lesson8/Sample.xmlのファイルを指定したことになるニコニコ