<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WIDGET-INFO &#187; ajax</title>
	<atom:link href="http://blog.widget-info.net/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.widget-info.net</link>
	<description>WIDGET-INFOではCakePHPやIPhone情報、その他開発に関する情報を発信</description>
	<lastBuildDate>Tue, 09 Feb 2010 13:44:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CakePHP　paginateのAjax化</title>
		<link>http://blog.widget-info.net/2009/09/cakephp_paginate_ajax/</link>
		<comments>http://blog.widget-info.net/2009/09/cakephp_paginate_ajax/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 21:07:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Helpers]]></category>
		<category><![CDATA[View]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[paginate]]></category>
		<category><![CDATA[ヘルパー]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=198</guid>
		<description><![CDATA[CakePHPの基本機能である「paginate」（ページング機能）。この便利な機能をAjax化するにはどうするのか、を今回少し解説してみたいと思います。]]></description>
			<content:encoded><![CDATA[<p>CakePHPの基本機能である「paginate」（ページング機能）。<br />
この便利な機能をAjax化するにはどうするのか、を今回少し解説してみたいと思います。</p>
<p>今では当たり前になりつつあるAjax。多くの方が開発、利用してきて大変便利でもあります。<br />
では「paginate」（ページング機能）の機能を簡単にAjaxしてみるということで、<br />
今回はAjaxには必ず必要なものがあります。<br />
<span id="more-198"></span>まずはAjaxを利用するため<a title="prototype" href="http://www.prototypejs.org/" target="_blank">「prototype.js」のJavaScriptライブラリ</a>が必要となります。<br />
CakePHPのAjaxヘルパーでは必ず必要となるライブラリですので、事前に用意して<br />
View側で利用できるようにしてください。</p>
<p>さてView側の「paginate」（ページング機能）に対してAjax化をして見ましょう。<br />
ここでまずは「$paginator-&gt;sort()」をAjax化するには、第3引数に次の値を指定します。</p>
<pre class="brush:php">$options['updaate']='ID';</pre>
<p>「ID」にはDOMのID名を指定します。（HTMLタグの「id=&#8221;」の部分です）<br />
「$paginator-&gt;sort()」の第1引数はソート名、第2引数はソートする<br />
データベースのフィールド名が指定しているとして次のような記述になります。</p>
<pre class="brush:php">$paginator-&gt;sort('名前','name',array('update'=&gt;'updateerea'));</pre>
<p>上記の場合「名前」のリンクをクリックすると、ソートの結果を「updateerea」のDOMに反映します。<br />
これだけで「$paginator-&gt;sort()」のAjax化は完了です。</p>
<p>通常はAjaxの長いコードを記述する必要があるのですが、簡単なコーディングでAjax化ができてしまいます。<br />
その他に「$paginator-&gt;prev()」と「$paginator-&gt;next()」には第2引数に、<br />
「$paginator-&gt;numbers()」は第1引数にそれぞれ同じように記述することでAjax化にすることができます。</p>
<p>Ajaxは若干JavaScriptの知識も必要ではありますが、Ajaxを少し試して見たい方には簡単に確認できると思います（笑</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/09/cakephp_paginate_ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP　paginateの基本</title>
		<link>http://blog.widget-info.net/2009/09/cakephp_paginate/</link>
		<comments>http://blog.widget-info.net/2009/09/cakephp_paginate/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 15:02:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Component]]></category>
		<category><![CDATA[Controller]]></category>
		<category><![CDATA[Helpers]]></category>
		<category><![CDATA[Model]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[paginate]]></category>
		<category><![CDATA[データベース]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=196</guid>
		<description><![CDATA[CakePHPでは「paginate」（ページング機能）が最初から搭載されています。1.1系では別に用意する必要があったページングが、1.2系では最初から搭載されているのでわざわざコーディングすることなく利用できる]]></description>
			<content:encoded><![CDATA[<p>CakePHPでは「paginate」（ページング機能）が最初から搭載されています。<br />
1.1系では別に用意する必要があったページングが、1.2系では最初から搭載されているので<br />
わざわざコーディングすることなく利用できるのは開発の効率がよくなるものです（笑</p>
<p>さてこの「paginate」（ページング機能）を少し解説していこうかと思います。<br />
といっても自分のメモ的なものもありますが。。。<br />
<span id="more-196"></span><br />
「paginate」（ページング機能）を利用する前に、CakePHPでまず必要な用意はありません（笑<br />
前述したとおり1.2系では最初から利用できるので特別な用意をする必要がありません。<br />
なぜ用意が必要がないかと言うと、必要なものはCakePHP側で先に用意してくれているからです。<br />
例えば、「paginate」（ページング機能）を使うには通常はヘルパーの「Paginator」、ajax化を利用するなら<br />
「ajax」ヘルパーが必要になりますが、CakePHPが各ヘルパーが無いと判断したら、自動で利用できるようになっています。<br />
これは楽です（笑<br />
ではデータベースから取得するにはコントローラーでどう記述するかとなると、<br />
まずは基本は次のようになります。</p>
<pre class="brush:php">$this-&gt;paginate();</pre>
<p>すごく簡単な説明でした（笑<br />
では条件を指定する場合、</p>
<pre class="brush:php">$this-&gt;paginate($conditions);</pre>
<p>またまた簡単です（笑<br />
ここで躓きそうな悩み。。。<br />
モデルを指定していないのに、なぜデータが取得できるか。<br />
それは「paginate」が自動でモデルを内部で処理をし、データベースからデータを取得する<br />
モデルを自動で設定してくれています。<br />
ここでさらに疑問となるのが「Aコントローラー」の「Aモデル」の「paginate」ではなく<br />
「Aコントローラー」から「Bモデル」の「paginate」のデータを取得する場合はどうするのか。</p>
<p>さすがにCakePHPは自動とはいきません（笑<br />
そこで取得するデータのモデルを指定する場合は次のようになります。</p>
<pre class="brush:php">$this-&gt;paginate('取得するモデル名');</pre>
<p>ここで「？」と思う方、はい先ほどの説明でモデルを指定する第1引数には<br />
条件指定を入れている場所でした。<br />
実はCakePHPでは第1引数が文字列の場合は、それをモデル名として処理します。<br />
では条件はどこに記述するのかですが、この場合は第2引数が条件指定の渡しとなります。</p>
<pre class="brush:php">$this-&gt;paginate('取得するモデル名',$conditions);</pre>
<p>これでモデルを指定したり、条件を指定したり自由に「paginate」（ページング機能）を使いこなせると思います。<br />
ちなみに「$conditions」の指定方法は「find」と同じです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/09/cakephp_paginate/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
