<?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>Alexander Zerr &#187; ajax</title>
	<atom:link href="http://www.xelaz.de/tag/ajax/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xelaz.de</link>
	<description>Meine Erfahrungen in der Web Entwicklung</description>
	<lastBuildDate>Mon, 19 Jul 2010 15:05:31 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zend Framework mit Ajax</title>
		<link>http://www.xelaz.de/zend-framework-mit-ajax/</link>
		<comments>http://www.xelaz.de/zend-framework-mit-ajax/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 19:43:07 +0000</pubDate>
		<dc:creator>Alexander Zerr</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ZF]]></category>

		<guid isPermaLink="false">http://www.xelaz.de/zend-framework-mit-ajax/</guid>
		<description><![CDATA[
Ich hab vor kurzem den neuen Action_Helper im ZF ausprobiert, und muss mal sagen, dass es eine gute Lösung ist um saubere Ajax Applikationen zu schreiben.
Beim ersten Anlauf bekam ich einen Fehler &#8216;Context &#8220;ajax&#8221; does not exist&#8217;. Obwoll ich immer die initContext(&#8216;html&#8217;) aufgerufen habe, kam es immer zu diesem Fehler. Dann hab nochmal die Ajax [...]]]></description>
			<content:encoded><![CDATA[<p><div style="float:right; margin:10px;width:120px;"><iframe src="http://rcm-de.amazon.de/e/cm?t=vfgibo-21&amp;asins=0973862157&amp;fc1=ff0000&amp;lc1=00749E&amp;bc1=ffffff&amp;bg1=ffffff&amp;lt1=_blank&amp;is2=1&amp;o=3&amp;p=8&amp;l=as1&amp;f=ifr&amp;" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></div><br />
Ich hab vor kurzem den neuen Action_Helper im ZF ausprobiert, und muss mal sagen, dass es eine gute Lösung ist um saubere Ajax Applikationen zu schreiben.<br />
Beim ersten Anlauf bekam ich einen Fehler &#8216;Context &#8220;ajax&#8221; does not exist&#8217;.<strong> </strong>Obwoll ich immer die initContext(&#8216;html&#8217;) aufgerufen habe, kam es immer zu diesem Fehler. Dann hab nochmal die Ajax URL angeschaut und hab festgestellt, dass es falscher Pfad war.</p>
<p><strong>/mudule/controller/action/format/ajax</strong></p>
<p>Das format/ajax war komplett hier Falsch, richtig ist fromat/html zu schreiben, aber die Templates werden mit ajax Prefix bennant.</p>
<p>So jetzt mal zu der ganzen Geschichte. Ich schreib Sie in kleinen Schritten.</p>
<p>Zum Anfang müsst ihr kurz wissen, dass Helper AjaxContext die Zend_Controller_Action_Helper_ContextSwitch um eine kleine Funktion erweitert, welche im header den XmlHttpRequest sucht um sicher zu gehen das es sich um Ajax Aufruf handelt.</p>
<p><strong>1.</strong><br />
Man startet den Front_Controller.</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #ff0000">$frontController</span> <span style="color: #66cc66;">=</span> Zend_Controller_Front<span style="color: #66cc66;">::</span><span style="color: #006600;">getInstance</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Erzeugt den AjaxContext Helper und legt ihn in den Broker rein:</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #ff0000">$ajaxContext</span> <span style="color: #66cc66;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Controller_Action_Helper_AjaxContext<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
Zend_Controller_Action_HelperBroker<span style="color: #66cc66;">::</span><span style="color: #006600;">addHelper</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000">$ajaxContext</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></div></div>

<p>Nach diesen Schritten könnt ihr euren Dispatcher starten:</p>

<div class="wp_syntax"><div class="code"><pre class="php"><span style="color: #ff0000">$frontController</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">dispatch</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></div></div>

<p><strong>2.</strong><br />
Jetzt kommen wir zu dem Controller und der Action:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="php"><span style="color: #000000; font-weight: bold;">class</span> IndexController <span style="color: #000000; font-weight: bold;">extends</span> Zend_Controller_Action
<span style="color: #66cc66;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #ff0000">$ajaxable</span> <span style="color: #66cc66;">=</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span>
   <span style="color: #ff0000;">'index'</span> <span style="color: #66cc66;">=&gt;</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'html'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>  <span style="color: #808080; font-style: italic;">// nur ajax</span>
   <span style="color: #ff0000;">'go'</span> <span style="color: #66cc66;">=&gt;</span> <span style="color: #000066;">array</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'json'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'xml'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #808080; font-style: italic;">// json  mit xml</span>
   <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> preDispatch<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#123;</span>
      <span style="color: #ff0000">$this</span><span style="color: #66cc66;">-&gt;</span>_helper<span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">ajaxContext</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">-&gt;</span><span style="color: #006600;">initContext</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
   <span style="color: #66cc66;">&#125;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> indexAction<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>
&nbsp;
   <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> goAction<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p><strong>3.<br />
</strong>Als Letztes legen wir die Templates fest. Je nach Format wird auch ensprechen die prefix angehängt index.ajax.phtml oder go.xml.phtml.</p>

<div class="wp_syntax"><div class="code"><pre class="apache">  views/
    scripts/
      index.xml.phtml
      go.xml.phtml
      go.json.phtml</pre></div></div>

<p>Und am ende müsst ihr Ajax am besten in <a href="http://www.jquery.com"><strong>jQuery</strong></a> oder Prototype die URL aufrufen:</p>

<div class="wp_syntax"><div class="code"><pre class="apache">/controller/index/format/html
/controller/go/format/xml
/controller/go/format/json</pre></div></div>

<p>So das war mal eine kurze einführung. Den Rest müsst ihr jetzt mal selbt ausprobieren oder einfach mal bei Google suchen <img src='http://www.xelaz.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.xelaz.de/zend-framework-mit-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
