<?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>Idea Factory &#187; jQuery</title>
	<atom:link href="http://ideafactory.it/category/jquery/feed" rel="self" type="application/rss+xml" />
	<link>http://ideafactory.it</link>
	<description>c&#039;e&#039; solo un modo di fare le cose: farle bene</description>
	<lastBuildDate>Thu, 01 Jul 2010 15:06:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Loading AJAX in stile Google con jQuery</title>
		<link>http://ideafactory.it/jquery/loading-ajax-in-stile-google-con-jquery.html</link>
		<comments>http://ideafactory.it/jquery/loading-ajax-in-stile-google-con-jquery.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 15:58:12 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=140</guid>
		<description><![CDATA[Chiunque utilizza applicazioni made in Google è abituato a vedere &#8220;Caricamento in corso&#8221; o informazioni simili ogni qualvolta si muove all&#8217;interno della pagina. Facciamo la stessa cosa con jQuery!:) La prima cosa da fare è creare un DIV all&#8217;interno della nostra applicazione web che abbia un ID ben definito (nell&#8217;esempio l&#8217;ho chiamato &#8220;loading&#8220;) e nel [...]]]></description>
			<content:encoded><![CDATA[<p>Chiunque utilizza applicazioni <em>made in Google</em> è abituato a vedere &#8220;<em>Caricamento in corso</em>&#8221; o informazioni simili ogni qualvolta si muove all&#8217;interno della pagina.</p>
<p>Facciamo la stessa cosa con jQuery!:)</p>
<p>La prima cosa da fare è creare un DIV all&#8217;interno della nostra applicazione web che abbia un ID ben definito (nell&#8217;esempio l&#8217;ho chiamato &#8220;<em>loading</em>&#8220;) e nel foglio di stile andremo a dargli queste caratteristiche:</p>
<p><code><br />
#loading{<br />
position: fixed;<br />
top: 0;<br />
left: 0;<br />
z-index: 5000;<br />
background-color: red;<br />
font-size: 150%;<br />
color: white;<br />
padding: 2px;<br />
display:none;</code><code><br />
}<br />
</code></p>
<p>Tramite la direttiva <em>position: fixed</em> e le coordinate di <em>top</em> e<em> left</em> ho posizionato il DIV nell&#8217;angolo in alto a sinistra dell&#8217;applicazione ed iniziamente non è visibile (<em>display:none</em>).</p>
<p>Adesso, tramite jQuery, facciamo in modo che ad ogni chiamata AJAX il DIV venga messo a video:</p>
<p><code><br />
$(document).ready(function()<br />
{<br />
$("#loading").bind("ajaxSend", function(){<br />
$(this).show();<br />
}).bind("ajaxComplete", function(){<br />
$(this).hide();<br />
});<br />
})<br />
</code><br />
Non appena la richiesta AJAX termina il DIV viene di nuovo nascosto.</p>
<p>Buon javascript a tutti!:)</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/jquery/loading-ajax-in-stile-google-con-jquery.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Problemi con jFrame e jQuery 1.3? Ecco la soluzione</title>
		<link>http://ideafactory.it/jquery/problemi-con-jframe-e-jquery-13-ecco-la-soluzione.html</link>
		<comments>http://ideafactory.it/jquery/problemi-con-jframe-e-jquery-13-ecco-la-soluzione.html#comments</comments>
		<pubDate>Wed, 25 Feb 2009 11:23:08 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/?p=133</guid>
		<description><![CDATA[Utilizzo abitualmente jQuery e tempo addietro ho scoperto un comodissimo plugin chiamato jFrame. Ecco cosa fa jFrame: Thanks to jQuery library, jFrame provides an easy way to get an HTML frame-like behaviour on DIV Elements with AJAX. It comes with Pimentech Scripts library. Also alvaiable on jQuery_site . With jFrame, you can build smart, complex [...]]]></description>
			<content:encoded><![CDATA[<p>Utilizzo abitualmente<a href="http://jquery.com/" onclick="pageTracker._trackPageview('/outgoing/jquery.com/?referer=');"> jQuery</a> e tempo addietro ho scoperto un comodissimo plugin chiamato<a href="http://garage.pimentech.net/scripts_doc_jquery_jframe/" onclick="pageTracker._trackPageview('/outgoing/garage.pimentech.net/scripts_doc_jquery_jframe/?referer=');"> jFrame</a>.</p>
<p>Ecco cosa fa<a href="http://garage.pimentech.net/scripts_doc_jquery_jframe/" onclick="pageTracker._trackPageview('/outgoing/garage.pimentech.net/scripts_doc_jquery_jframe/?referer=');"> jFrame</a>:</p>
<blockquote><p>Thanks to jQuery library, jFrame provides an easy way to get an HTML frame-like behaviour on DIV Elements with AJAX. It comes with Pimentech Scripts library. Also alvaiable on jQuery_site .</p>
<p>With jFrame, you can build smart, complex modern, internet apps without leaving the main page, without a single line of JavaScript !</p>
<p>A jFrame is a DIV tag with a src attribute. In a jFrame, click events on <a> and input type=&#8221;submit&#8221; tags will be handled by jframe and loaded in ajax. </a></p></blockquote>
<p>Aggiornando le versione di<a href="http://jquery.com/" onclick="pageTracker._trackPageview('/outgoing/jquery.com/?referer=');"> jQuery</a> alla &#8220;current&#8221;,<a href="http://garage.pimentech.net/scripts_doc_jquery_jframe/" onclick="pageTracker._trackPageview('/outgoing/garage.pimentech.net/scripts_doc_jquery_jframe/?referer=');"> jFrame</a> aveva smesso di funzionare.</p>
<p>La soluzione è semplice, basta aprire il file .JS di <a href="http://garage.pimentech.net/scripts_doc_jquery_jframe/" onclick="pageTracker._trackPageview('/outgoing/garage.pimentech.net/scripts_doc_jquery_jframe/?referer=');">jFrame</a> e sostituire:</p>
<p><code>div[@src]</code></p>
<p>con</p>
<p><code>div[src]</code></p>
<p>Va tolta la chiocciola perché dalle versione 1.2.6 di <a href="http://jquery.com/" onclick="pageTracker._trackPageview('/outgoing/jquery.com/?referer=');">jQuery</a> è stata deprecetata come selettore di attributo.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/jquery/problemi-con-jframe-e-jquery-13-ecco-la-soluzione.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP JQuery autocomplete Helper</title>
		<link>http://ideafactory.it/cakephp/cakephp-jquery-autocomplete-helper.html</link>
		<comments>http://ideafactory.it/cakephp/cakephp-jquery-autocomplete-helper.html#comments</comments>
		<pubDate>Wed, 26 Mar 2008 12:10:33 +0000</pubDate>
		<dc:creator>Gianluca</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[helper]]></category>

		<guid isPermaLink="false">http://www.ideafactory.it/2008/03/26/cakephp-jquery-autocomplete-helper/</guid>
		<description><![CDATA[CakePHP è un framework web scritto in PHP, che segue i principi di Ruby on Rails e quindi permette un rapido sviluppo delle applicazioni. La componente Ajax di CakePHP si basa su Prototype ma, l&#8217;estrema flessibilità del framework, ci permette di includere qualsiasi altra libreria Javascript. Io utilizzo jQuery perché, con poche e comprensibili istruzioni, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cakephp.org" onclick="pageTracker._trackPageview('/outgoing/www.cakephp.org?referer=');">CakePHP</a> è un <a href="http://it.wikipedia.org/w/index.php?title=Framework_web&amp;action=edit&amp;redlink=1" class="new" title="Framework web (pagina inesistente)" onclick="pageTracker._trackPageview('/outgoing/it.wikipedia.org/w/index.php?title=Framework_web_amp_action=edit_amp_redlink=1&amp;referer=');">framework web</a> scritto in <a href="http://it.wikipedia.org/wiki/PHP" title="PHP" onclick="pageTracker._trackPageview('/outgoing/it.wikipedia.org/wiki/PHP?referer=');">PHP</a>, che segue i principi di <a href="http://it.wikipedia.org/wiki/Ruby_on_Rails" title="Ruby on Rails" onclick="pageTracker._trackPageview('/outgoing/it.wikipedia.org/wiki/Ruby_on_Rails?referer=');">Ruby on Rails</a> e quindi permette un rapido sviluppo delle applicazioni.</p>
<p>La componente <a href="http://it.wikipedia.org/wiki/AJAX" onclick="pageTracker._trackPageview('/outgoing/it.wikipedia.org/wiki/AJAX?referer=');">Ajax</a> di <a href="http://www.cakephp.org" onclick="pageTracker._trackPageview('/outgoing/www.cakephp.org?referer=');">CakePHP</a> si basa su <a href="http://www.prototypejs.org/" onclick="pageTracker._trackPageview('/outgoing/www.prototypejs.org/?referer=');">Prototype</a> ma, l&#8217;estrema flessibilità del framework, ci permette di includere qualsiasi altra libreria Javascript.</p>
<p>Io utilizzo <a href="http://jquery.com" onclick="pageTracker._trackPageview('/outgoing/jquery.com?referer=');">jQuery</a> perché, con poche e comprensibili istruzioni, permette di fare cose davvero straordinarie e quindi ho pensato di scrivere un <a href="http://manual.cakephp.org/chapter/helpers" onclick="pageTracker._trackPageview('/outgoing/manual.cakephp.org/chapter/helpers?referer=');">helper</a> per <a href="http://www.cakephp.org" onclick="pageTracker._trackPageview('/outgoing/www.cakephp.org?referer=');">CakePHP</a> che implementasse l&#8217;autocomplete facendo delle richieste <a href="http://it.wikipedia.org/wiki/AJAX" onclick="pageTracker._trackPageview('/outgoing/it.wikipedia.org/wiki/AJAX?referer=');">Ajax</a> al server tramite l&#8217;ausilio di <a href="http://jquery.com" onclick="pageTracker._trackPageview('/outgoing/jquery.com?referer=');">jQuery</a>.</p>
<p>Il mio <a href="http://manual.cakephp.org/chapter/helpers" onclick="pageTracker._trackPageview('/outgoing/manual.cakephp.org/chapter/helpers?referer=');">helper</a> si chiama &#8220;<em>jmycake</em>&#8221; perché verrà ampliato ogni qualvolta avrò la necessità di <a href="http://jquery.com" onclick="pageTracker._trackPageview('/outgoing/jquery.com?referer=');">jQuery</a> all&#8217;interno delle mie applicazioni.<span id="more-53"></span></p>
<p>Ecco come ho è strutturato l&#8217;<a href="http://http://manual.cakephp.org/chapter/helpers" onclick="pageTracker._trackPageview('/outgoing/http_//manual.cakephp.org/chapter/helpers?referer=');">helper</a>:</p>
<p><a href="http://192.168.1.7/blog/wp-content/uploads/2008/03/jmycakephp.txt" title="jmycake helper file" onclick="pageTracker._trackPageview('/outgoing/192.168.1.7/blog/wp-content/uploads/2008/03/jmycakephp.txt?referer=');">jmycake helper file</a></p>
<p>La funzione <em>autocomplete</em> aggiunge un blocco di codice JavaScript che si occuperà di:</p>
<ul>
<li> modificare le caratteristiche dell&#8217;input sul quale verrà effettuato l&#8217;autocompletamento</li>
<li>effettuare le richieste Ajax verso il server</li>
<li>visualizzare i risultati in una lista <strong>selezionabile</strong> anche con le freccette della tastiera</li>
<li>autocompletare i campi passati come parametro alla funzione</li>
</ul>
<p>Nel file <em>app_controller.php</em> sarà necessario inserire questa funzione:</p>
<p><a href="http://192.168.1.7/blog/wp-content/uploads/2008/03/app_controller-autocompletephp.txt" title="Funzione da inserire in app_controller.php" onclick="pageTracker._trackPageview('/outgoing/192.168.1.7/blog/wp-content/uploads/2008/03/app_controller-autocompletephp.txt?referer=');">Funzione da inserire in app_controller.php</a></p>
<p>Eh, come il buon <a href="http://en.wikipedia.org/wiki/Model-view-controller" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Model-view-controller?referer=');">pattern MVC</a> vuole, creare la relativa vista:</p>
<p><a href="http://192.168.1.7/blog/wp-content/uploads/2008/03/autocompletectp.txt" title="Autocomplete View" onclick="pageTracker._trackPageview('/outgoing/192.168.1.7/blog/wp-content/uploads/2008/03/autocompletectp.txt?referer=');">Autocomplete View</a></p>
<p>La vista ha lo stesso nome della funzione (<em>autocomplete),</em> con estensione<em> .ctp</em> visto che utilizzo <a href="http://www.cakephp.org" onclick="pageTracker._trackPageview('/outgoing/www.cakephp.org?referer=');">CakePHP</a> 1.2 ed io l&#8217;ho posizionata nella directory &#8220;<em>common</em>&#8221; ma il file può essere salvato dove si vuole a patto di modificare questa riga nell&#8217;<em>app_controller</em>:</p>
<p><code><br />
$this-&gt;render('autocomplete','ajax','/common/autocomplete');<br />
</code></p>
<p>C&#8217;è da ricordarsi inoltre di inserire &#8216;<em>Jmycake</em>&#8216; nell&#8217;array <em>$helpers</em> del vostro controller insieme a &#8216;<em>Html</em>&#8216;, &#8216;<em>Form</em>&#8216; e &#8216;<em>Javascript</em>&#8216;:</p>
<p><code><br />
var $helpers = array('Html','Form','Javascript','Jmycake');<br />
</code></p>
<p>Io l&#8217;ho inserito direttamente in <em>app_controller.php</em> così è ereditario in tutti gli altri controller.</p>
<p>Adesso inseriamo in una vista di prova l&#8217;<em>autocomplete</em>.</p>
<p>Supponiamo che abbiamo questa vista:</p>
<p><a href="http://192.168.1.7/blog/wp-content/uploads/2008/03/indexctp.txt" title="View standard" onclick="pageTracker._trackPageview('/outgoing/192.168.1.7/blog/wp-content/uploads/2008/03/indexctp.txt?referer=');">View standard</a></p>
<p>Se desideriamo l&#8217;autocompletamento sul campo &#8220;<em>nation</em>&#8220;, sarà sufficiente aggiungere dentro ai tag del form:<br />
<code><br />
&lt;?php echo $jmycake-&gt;autocomplete('NationNation','Nation/nation',array('NationId'=&gt;'id','NationIso'=&gt;'iso')); ?&gt;<br />
</code><br />
Così facendo all&#8217;input con id &#8220;NationNation&#8221; verrà aggiunto l&#8217;autocompletamento che prenderà i dati dal modello &#8220;Nation&#8221;, cercando, le lettere inserite attreaverso l&#8217;input, nel campo &#8220;nation&#8221; (ecco perché il secondo parametro è Nation/nation&#8221;).<br />
L&#8217;array passato come ultimo argomento contiene gli id dei campi di input da riempire ed il nome del campo da cui prendere i dati nel database.<br />
La funzione autocomplete ha anche altri due parametri facoltativi che sono:</p>
<ol>
<li>il numero di risultati da visualizzare nella lista dell&#8217;autocomplete</li>
<li>la lunghezza minima della stringa per effettuare le richieste</li>
</ol>
<p>Per finire, vi mostro il mio CSS che renderizza i risultati:</p>
<p><a href="http://192.168.1.7/blog/wp-content/uploads/2008/03/mycss.txt" title="Foglio di stile per l’autocomplete" onclick="pageTracker._trackPageview('/outgoing/192.168.1.7/blog/wp-content/uploads/2008/03/mycss.txt?referer=');">Foglio di stile per l’autocomplete</a></p>
<p>Ovviamente va incluso sia il foglio di stile sopra mostrato che la libreria <a href="http://jquery.com" onclick="pageTracker._trackPageview('/outgoing/jquery.com?referer=');">jQuery</a> che si può <a href="http://docs.jquery.com/Downloading_jQuery" onclick="pageTracker._trackPageview('/outgoing/docs.jquery.com/Downloading_jQuery?referer=');">scaricare liberamente dal sito</a>.</p>
<p>Spero di essere stato utile a qualcuno e di ricevere qualche feedback positivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://ideafactory.it/cakephp/cakephp-jquery-autocomplete-helper.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
