<?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>Kau-Boys blog &#187; jQuery</title>
	<atom:link href="http://kau-boys.de/tag/jquery/feed" rel="self" type="application/rss+xml" />
	<link>http://kau-boys.de</link>
	<description>Webdevelopment and more</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:09:53 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Formular-Vorschau mit jQuery Thickbox</title>
		<link>http://kau-boys.de/webentwicklung/formular-vorschau-mit-jquery-thickbox?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=formular-vorschau-mit-jquery-thickbox</link>
		<comments>http://kau-boys.de/webentwicklung/formular-vorschau-mit-jquery-thickbox#comments</comments>
		<pubDate>Thu, 20 Aug 2009 14:46:37 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=137</guid>
		<description><![CDATA[F&#252;r eines meiner Projekte habe ich eine kleine einfache Formular-Vorschau implementiert. Da ich mit dem Ergebnis und der Einfachheit sehr zufrieden bin, m&#246;chte ich das Ergebnis hier kurz vorstellen. Die Vorschau-Funktion nutzt das jQuery Framework und dessen Plugin Thickbox. Der Einsatz von Thickbox stellt aber nur eine M&#246;glichkeit dar, die Vorschau umzusetzen. Im Grunde ist [...]]]></description>
			<content:encoded><![CDATA[<p>F&#252;r eines meiner Projekte habe ich eine kleine einfache Formular-Vorschau implementiert. Da ich mit dem Ergebnis und der Einfachheit sehr zufrieden bin, m&#246;chte ich das Ergebnis hier kurz vorstellen.</p>
<p>Die Vorschau-Funktion nutzt das jQuery Framework und dessen Plugin Thickbox. Der Einsatz von Thickbox stellt aber nur eine M&#246;glichkeit dar, die Vorschau umzusetzen. Im Grunde ist der Aufbau recht simpel. Die JavaScript Funktion setzt das Target und das Action Attribut des Formulars und sendet die Daten an das unter Target angegebene Ziel. Das kann ein neuer Tab sein, oder aber ein iFrame, der wie in dem Beispiel beschrieben in der Thickbox angezeigt wird.</p>
<p><span id="more-137"></span></p>
<p>Zur Demonstration habe ich kleines E-Mail-Formular erstellt. Vor dem Absenden kann der Benutzer die zu versendende Mail ansehen. Ich setze die Funktion in einem Loginbereich f&#252;r ein sehr viel komplexeres Formular ein und verwende f&#252;r die Vorschau-Funktion auch das Skript, &#252;ber das die Daten sp&#228;ter dem Benutzer ausgegeben werden. Die Vorgehensweise ist aber von der Art und dem Umfang des Formulars unabh&#228;ngig.</p>
<p><img class="aligncenter" title="screenshot of mail form" src="http://kau-boys.de/wp-content/uploads/2009/08/form.png" alt="screenshot of mail form" /><br />
So sieht das kleine Mailformular aus. Nat&#252;rlich k&#246;nnte man es noch um die Felder f&#252;r den Absender und dessen E-Mail-Adresse erweitern, aber es dient wie gesagt nur als Demonstration.</p>
<p>Die einzige Anforderung an das Formular selbst ist eine ID, damit es &#252;ber die Javascript-Funktion aufgerufen werden kann. Anschlie&#223;end muss ein Button f&#252;r die Vorschau eingef&#252;gt werden. Dieser sollte am besten ausgeblendet werden, wenn der Nutzer kein JavaScript aktiviert hat.</p>
<pre class="brush: xml; gutter: false;">
&lt;input type=&quot;button&quot; value=&quot;Preview&quot; id=&quot;previewbutton&quot; class=&quot;thickbox&quot; alt=&quot;#TB_inline?width=400&amp;height=250&amp;inlineId=mailpreview&amp;modal=true&quot; /&gt;
</pre>
<p>Das Attribut alt enth&#228;lt die <a href="http://jquery.com/demo/thickbox/#container-4">Parameter f&#252;r die Thickbox</a>. Zus&#228;tzlich muss die CSS-Klasse thickbox zugewiesen werden, um bei einem Klick auf den Button die Thickbox zu aktivieren. Das ID Attribut wird f&#252;r den Aufruf der JavaScript Funktion durch die click() Funktion von jQuery ben&#246;tigt. Hier ist nat&#252;rlich auch ein inline Attribut wie onmousedown m&#246;glich, aber das w&#228;re nicht sehr jQuery-Style.</p>
<p>Anschlie&#223;end aktivieren wir den Eventhandler f&#252;r den Button zum Aufruf der Vorschau-Funktion:</p>
<pre class="brush: jscript; gutter: false;">
$('#previewbutton').click(function(){
	formPreview('mailsend', 'mailpreview.php', 'mailpreviewiframe');
});
</pre>
<p>Der erste Parameter der Funktion steht f&#252;r die ID des Formular, der zweite f&#252;r die Seite, die zur Anzeige der Vorschau verwendet wird. Der dritte f&#252;r das Zeil. Das Ziel kann ein neues Fenster sein, oder aber wie in unserem Fall ein iFrame, der wie folgt an einer beliebigen Stelle im Quelltext definiert wird:</p>
<pre class="brush: xml; gutter: false;">
&lt;div id=&quot;mailpreview&quot; style=&quot;display: none;&quot;&gt;
	&lt;iframe name=&quot;mailpreviewiframe&quot; style=&quot;border: 0; width: 400px; height: 245px;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
</pre>
<p>Der Frame steckt in einem DIV, welches ausgeblendet wird. Die ID des DIVs wird f&#252;r die Thickbox-Parameter verwendet.</p>
<p>Was geschiet nun bei einem Klick auf den Vorschau-Button? Zuerst wird die Thickbox-Funktion ausgef&#252;hrt und das DIV in die Thickbox verschoben. Mit einer kleinen Verz&#246;gerung wird dann der Inhalt des Formulars an den iFrame gesendet, indem das Traget Attribut des Formulars ausgenutzt wird. Um zum Anzeigen der Vorschau eine andere Seite als beim Speichern zu verwenden wird au&#223;erdem vor dem Absenden das Action Attribut ausgetauscht und direkt nach dem Absenden wieder auf seinen Ursprungszustand zur&#252;ckgesetzt.</p>
<p><img class="aligncenter" title="screenshot of mail preview" src="http://kau-boys.de/wp-content/uploads/2009/08/preview.png" alt="screenshot of mail preview" /></p>
<p>Da die Vorschau unter Verwendung des sp&#228;teren Ausgabeseite geschiet, entspricht die Darstellung sehr genau dem sp&#228;teren Ergebnis. Dazu sollten dann eventuell Daten aus der Datenbank nachgeladen werden oder Werte entsprechend des Speicheralgorithmus ver&#228;ndert werden. Bei komplexen Formularen kann es auch sinnvoll sein, die Daten &#252;ber die regul&#228;re Speicherfunktion in eine tempor&#228;re Tabelle zu speichern, um sie direkt wieder auszulesen. In meinem Projekt lade ich beispielsweise Daten f&#252;r die ausgew&#228;hlten SELECT Felder nach und wende die Datenbank-Escape-Funktionen an. Danach f&#252;ge ich alles zu einer Datenstruktur zusammen, die so auch aus der Datenbank ausgelesen wird und gebe sie mit der Ausgabeseite aus.</p>
<p>Ich hoffe dieses kleine Beispiel zeigt euch, mit welch einfachen Mitteln man eine kleine Vorschau-Funktion umsetzen kann, ohne dabei auf Techniken wie AJAX angewiesen zu sein. Wer auf die Thickbox und jQuery verzichten will, muss lediglich einen inline Eventhandler verwenden und als Target beipsielsweise &#8220;_blank&#8221; angeben, um die Vorschau in einem neuen Tab/Fenster zu &#246;ffnen.</p>
<pre class="brush: xml; gutter: false;">
&lt;input type=&quot;button&quot; value=&quot;Preview&quot; onclick=&quot;formPreview('mailsend', 'mailpreview.php', '_blank');&quot; /&gt;
</pre>
<p>Das Formular kann gerne hier ausprobiert werden. Und keine Angst, es wird dabei in keinem Fall eine Mail versendet! Wer den Quellcode haben m&#246;chte, kann ihn auch gerne hier downloaden. </p>
<p><a href="http://kau-boys.de/beispiele/formpreview/form.php">Beispiel</a><br />
<a href="http://kau-boys.de/beispiele/formpreview/formpreview.zip">Download</a></p>
<p>Noch ein Wort zum Formular-Design. Da ich nicht gerade die Geduld und die Begabung f&#252;r sch&#246;ne Formular habe, wurde f&#252;r das Beispiel das <a href="http://www.emblematiq.com/lab/niceforms/">Niceform 2.0</a> verwendet. Dieses ist zwar auf JavaScript angewiesen und ersetzt vergebene Klassen, aber ich konnte ohne viel Aufwand sch&#246;ne Formulare f&#252;r das Beispiel erzeugen.</p>
<p><strong>Noch ein kleiner Bonustipp:</strong> F&#252;r Funktionen, die zwingend JavaScript erfodern, sollten diese ausgeblendet werden, wenn der Nutzer kein JavaScript aktiviert hat. Dazu einfach eine CSS-Klasse f&#252;r solche Elemente verwenden und diese per &#8220;display: none&#8221; ausblenden. Im Kopfbereich kann dann mit &#8220;document.write()&#8221; oder den Funktionen der JavaScript-Frameworks die &#8220;display&#8221; Eigenschaft der CSS-Klasse wieder &#252;berschrieben werden. Somit erspart man dem Nutzer ohne JavaScript die unn&#246;tigen Klicks und in diesem Beispiel ein versehentliches Absenden, da viele Browser bei deaktiviertem JavaScript alle Buttons automatisch wie Submit-Buttons interpretiert.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/webentwicklung/formular-vorschau-mit-jquery-thickbox/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Kau-Boy&#8217;s AutoCompleter Plugin</title>
		<link>http://kau-boys.de/wordpress/kau-boys-autocompleter-plugin?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=kau-boys-autocompleter-plugin</link>
		<comments>http://kau-boys.de/wordpress/kau-boys-autocompleter-plugin#comments</comments>
		<pubDate>Thu, 02 Jul 2009 16:11:34 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=24</guid>
		<description><![CDATA[Dieses Plugin verwendet den Ajax.Autocompleter von script.aculo.us bzw. die jQuery Autocomplete Funktoin um Beitr&#228;ge zu finden, die den Suchbegriff im Titel oder Inhaltstext enthalten. Der eingegebene Text kann in den Titel der Beitr&#228;ge und/oder im Inhalt gesucht werden. Es kann zus&#228;tzlich die Formatierung der Ergebnisse &#252;ber eine eigene CSS Datei an den Blog angepasst werden. [...]]]></description>
			<content:encoded><![CDATA[<p>Dieses Plugin verwendet den Ajax.Autocompleter von script.aculo.us bzw. die jQuery Autocomplete Funktoin um Beitr&#228;ge zu finden, die den Suchbegriff im Titel oder Inhaltstext enthalten.</p>
<p>Der eingegebene Text kann in den Titel der Beitr&#228;ge und/oder im Inhalt gesucht werden. Es kann zus&#228;tzlich die Formatierung der Ergebnisse &#252;ber eine eigene CSS Datei an den Blog angepasst werden. Es kann jeweils der Titel oder zus&#228;tzlich ein Teil des Inhalts angegeben werden, wobei hier auch die L&#228;nge des auszugebenden Inhaltes eingestellt werden kann.</p>
<p><span id="more-24"></span></p>
<h2>Installation:</h2>
<h3>Installation &#252;ber die WordPress Adminstrator-Seiten:</h3>
<ol>
<li>Gehe zur Admin-Seite <code>Plugins -&gt; Installieren</code></li>
<li>Suche nach <code>kau-boy</code> und w&#228;hle das Plugin aus</li>
<li>W&#228;hle die Aktion <code>Jetzt installieren</code></li>
<li>Klicke auf <code>Jetzt installieren</code></li>
<li>Aktiviere das Plugin &#252;ber den <code>Plugins</code> Men&#252;punkt in WordPress</li>
<li>Du musst eventuell die Einstellungen anpassen, gerade wenn dein Suchfeld eine andere ID als <code>s</code> hat</li>
</ol>
<h3>Installation unter Verwendung der WordPress Adminstrator-Seiten:</h3>
<ol>
<li>Lade die zip-Datei des Plugins herunter: <a href="http://downloads.wordpress.org/plugin/kau-boys-autocompleter.2.2.zip">kau-boys-autocompleter.2.2.zip</a></li>
<li>Gehe zur Admin-Seite <code>Plugins -&gt; Installieren</code></li>
<li>W&#228;hle den Link <code>Hochladen</code> unter <code>Plugins Installieren</code> &#220;berschrift</li>
<li>W&#228;hle die zip-Datei aus und klicke <code>Jetzt installieren</code></li>
<li>Aktiviere das Plugin &#252;ber den <code>Plugins</code> Men&#252;punkt in WordPress</li>
<li>Du musst eventuell die Einstellungen anpassen, gerade wenn dein Suchfeld eine andere ID als <code>s</code> hat</li>
</ol>
<h3>Installation unter Verwendung von FTP</h3>
<ol>
<li>Lade die zip-Datei des Plugins herunter: <a href="http://downloads.wordpress.org/plugin/kau-boys-autocompleter.2.2.zip">kau-boys-autocompleter.2.2.zip</a></li>
<li>Entpacke es und lade es in dein <code>/wp-content/plugins/</code> Verzeichnis hoch</li>
<li>Aktiviere das Plugin &#252;ber den <code>Plugins</code> Men&#252;punkt in WordPress</li>
<li>Du musst eventuell die Einstellungen anpassen, gerade wenn dein Suchfeld eine andere ID als <code>s</code> hat</li>
</ol>
<h2>Screenshots:</h2>
<h3>Screenshot des Plugins in einem neuen WordPress blog</h3>
<p><img title="Screenshot des Plugins in einem neuen WordPress blog" src="http://kau-boys.de/wp-content/uploads/2009/08/screenshot-1.png" alt="Screenshot des Plugins" /></p>
<h3>Screenshot der Einstellungsseite (auch in englisch erh&#228;ltlich)</h3>
<p><img title="Screenshot der Einstellungsseite (auch in englisch erh&#228;ltlich)" src="http://kau-boys.de/wp-content/uploads/2009/08/screenshot-2-de.png" alt="Screenshot der Einstellungsseite" /></p>
<h2>Versionsgeschichte:</h2>
<ul>
<li><strong>2.2</strong> Deaktivieren der Suche f&#252;r Suchfelder im Adminbereich und Erm&#246;glichen der Verwendung zusammen mit dem relevanssi Plugin</li>
<li><strong>2.1</strong> Hinzuf&#252;gen einer neuen Version von jQuery Autocomplete</li>
<li><strong>2.0.1</strong> Entfernen von &#8220;short open tags&#8221;, die auf blogs die Fehler verursachen die &#8220;short_open_tag&#8221; nicht auf &#8220;On&#8221; gesetzt haben</li>
<li><strong>2.0</strong> Autocompleter mit mehreren Textfelder auf einer Seite nutzbar machen, verbessern der K&#252;rzung des Inhalt von Artikeln</li>
<li><strong>1.9</strong> Beheben von Problemen mit PHP4, funktioniert nun auch mit qTranslate im &#8220;Query-Modus&#8221; (?lang=de)</li>
<li><strong>1.8</strong> Hinzuf&#252;gen der Einstellung f&#252;r die L&#228;nge des Titels und des Inhalts in den Ergebnissen</li>
<li><strong>1.7</strong> Erstzen von jQuery suggest durch jQuery autocomplete, da das suggest Plugin HTML Auszeichnungen zerst&#246;rt</li>
<li><strong>1.6.1</strong> Verwendung des id Attributs als Standard anstelle des name Attributs</li>
<li><strong>1.6</strong> Hinzuf&#252;gen der M&#246;glichkeit das Suchfeldes anhand des name Atrrbiuts auszuw&#228;hlen</li>
<li><strong>1.5.2</strong> Hinzuf&#252;gen der richtigen Kodierung zu <code>html_entity_decode()</code> um das Zerteilen von XML Enit&#228;ten zu verhindern</li>
<li><strong>1.5.1</strong> Fehler im AJAX repsonse behoben, der die Einstellung f&#252;r die Ergebnisfelder nicht geladen hat</li>
<li><strong>1.5</strong> Hinzuf&#252;gen Auswahlm&#246;glichkeiten f&#252;r die Such- und Ergebnisfelder</li>
<li><strong>1.4.1</strong> Aktualisierung der &#220;bersetzungsdatei</li>
<li><strong>1.4</strong> Kombinieren der Styles f&#252;r jQuery und script.aculo.us, Hinzuf&#252;gen  einer Einstellung zur Multibyte-Kodierung</li>
<li><strong>1.3.5</strong> Fehler bei der <code>html_entity_decode()</code> Konvertierung beseitigt</li>
<li><strong>1.3</strong> Enfternen eines Kommentars in autocompleter.js.php, welcher eine PHP header warning  erzeugt hat</li>
<li><strong>1.2</strong> Verwendung von <code>html_entity_decode()</code> um das Zerteilen von Enit&#228;ten zu verhindern</li>
<li><strong>1.1</strong> Entfernen von WordPress shortcodes um leere oder falsche Seiten zu verhindern</li>
<li><strong>1.0</strong> M&#246;glichkeit jQuery ODER script.aculo.us zu verwenden, &#220;bersetzen der Einstellungsseite ins Deutsche</li>
<li><strong>0.4</strong> Hinzuf&#252;gen der Einstellung f&#252;r die Anzahl der Suchergebnisse und der eigenen CSS Date</li>
<li><strong>0.3</strong> Hinzuf&#252;gen der Einstellung f&#252;r die Suchfeld ID</li>
<li><strong>0.2</strong> Erste stabile Version</li>
</ul>
<p>Wenn dir dieses Plugin gef&#228;llt oder dir etwas fehlt, w&#252;rde ich mich freuen es zu erfahren. Hinterlasse einfach ein Kommentar auf dieser Seiter oder auf meiner <a href="http://wordpress.org/tags/kau-boys-autocompleter">WordPress Plugin Seite</a>.</p>
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=6104701"><img style="border: 0pt none ;" src="http://kau-boys.de/wp-content/uploads/2009/07/btn_donate_LG_en_US.gif" alt="PayPal - The safer, easier way to pay online!" /></a> <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=6104638"><img style="border: 0pt none ;" src="http://kau-boys.de/wp-content/uploads/2009/07/btn_donate_LG_de_DE.gif" alt="PayPal - The safer, easier way to pay online!" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/wordpress/kau-boys-autocompleter-plugin/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>
