<?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>Blog :: deam.org &#187; $javascript-&gt;codeBlock</title>
	<atom:link href="http://blog.deam.org/tag/javascript-codeblock/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.deam.org</link>
	<description>hier schreibt Klaus M. Brantl</description>
	<lastBuildDate>Wed, 01 Sep 2010 06:27:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>codeBlock und object: JSON mit CakePHP</title>
		<link>http://blog.deam.org/2008/10/15/codeblock-und-object-json-mit-cakephp/</link>
		<comments>http://blog.deam.org/2008/10/15/codeblock-und-object-json-mit-cakephp/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 15:56:23 +0000</pubDate>
		<dc:creator>Klaus M. Brantl</dc:creator>
				<category><![CDATA[PHP/ PHP-Frameworks/ CakePHP]]></category>
		<category><![CDATA[$javascript->codeBlock]]></category>
		<category><![CDATA[$javascript->object]]></category>

		<guid isPermaLink="false">http://blog.deam.org/?p=40</guid>
		<description><![CDATA[Mit $javascript-&#62;codeBlock lässt sich recht elegant Javascript-Code einbetten (vor allem interessant, wenn man die ein oder andere Referenzinformation für eine JS-Funktion zur Verfügung stellen will &#8211; und das ohne AJAX). $javascript-&#62;codeBlock(&#8220;alert(&#8216;hallo&#8217;);&#8221;, array(&#8216;inline&#8217; =&#62; false)); Das &#8216;inline&#8217; =&#62; false ist Gold wert. Hat man in seinem default.ctp schön brav &#60;?php echo $scripts_for_layout ?&#62; in den &#60;head&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Mit $javascript-&gt;codeBlock lässt sich recht elegant Javascript-Code einbetten (vor allem interessant, wenn man die ein oder andere Referenzinformation für eine JS-Funktion zur Verfügung stellen will &#8211; und das ohne AJAX).</p>
<p><strong>$javascript-&gt;codeBlock(&#8220;alert(&#8216;hallo&#8217;);&#8221;, array(&#8216;inline&#8217; =&gt; false));</strong></p>
<p>Das &#8216;inline&#8217; =&gt; false ist Gold wert. Hat man in seinem default.ctp schön brav &lt;?php echo $scripts_for_layout ?&gt; in den &lt;head&gt; geschrieben, dann wird der JS-Code nicht mitten in die Seite &#8220;geschmiert&#8221;, sondern schön in den &lt;head&gt;-Bereich des Dokuments platziert. Sowas sorgt für Ordnung.</p>
<p><strong>$javascript-&gt;object($this-&gt;viewVars['adressenstatus'], false, &#8216;adressenstatus = &#8216;, &#8216;;&#8217;);</strong></p>
<p>Die <strong>object</strong>-Funktion macht aus einem Array entsprechend JSON &#8211; mit allem was dazugehört. In diesem Fall beziehe ich mich auf ein zweidimensionales Array, welches ich sowieso für die Ausgabe eines Popups brauche. Das <strong>$this-&gt;viewVars['adressenstatus']</strong> wird<strong> </strong>mit einem Präfix &#8216;adressenstatus = &#8216; und einem Suffix &#8216;;&#8217; versehen. Und schon habe ich ein schönes Javascript-Objekt.<strong> </strong>Das sieht dann in etwa so aus:</p>
<pre class="ln-"><code class="php">adressenstatus = {"Mitgliedschaft":{"1":"Plus-Mitgliedschaft","2":"Standard-Mitgliedschaft","3":"Gruppen-Mitgliedschaft"},"sonstiges":{"0":"Neuanmeldung","4":"Interessent","5":"Multiplikator","6":"Referent","7":"ruhende Mitgliedschaft","8":"Presse\/ \u00d6ffentlichkeitsarbeit\n"}};</code></pre>
<p>Jetzt kombiniere ich beides und schwups hängt das ganze im &lt;head&gt;-Bereich meiner Seite:</p>
<pre class="ln-"><code class="php">$javascript-&gt;codeBlock($javascript-&gt;object($this-&gt;viewVars['adressenstatus'], false, 'adressenstatus = ', ';'), array('inline' =&gt; false));</code></pre>
<p>Die Funktion <strong>$javascript-&gt;object</strong> werde ich wohl noch recht oft einsetzen. Vor allem auch in Zusammenhang mit AJAX.</p>
<p>Ziel der Übung von oben ist es bei einem onchange-Event eines Popups entsprechende Formularteile ein- oder auszublenden. Hier macht es imho wenig Sinn mit einem XHTTP-Request zu arbeiten, wenn der Datenumfang des Popups klein ist (in diesem Fall ja nur 9 Datensätze). Da liefert man das Objekt für Javascript einmal im &lt;head&gt; und bezieht sich dann entsprechend darauf.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deam.org/2008/10/15/codeblock-und-object-json-mit-cakephp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
