<?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>Programmazione Web &#187; Ajax</title>
	<atom:link href="http://www.programmazione-web.com/categorie/ajax/feed" rel="self" type="application/rss+xml" />
	<link>http://www.programmazione-web.com</link>
	<description>il Blog open degli sviluppatori del web!</description>
	<lastBuildDate>Mon, 25 Jul 2011 16:39:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Passare oggetti javascript a ASP.net web services</title>
		<link>http://www.programmazione-web.com/passare-oggetti-javascript-asp-net-web-services.php</link>
		<comments>http://www.programmazione-web.com/passare-oggetti-javascript-asp-net-web-services.php#comments</comments>
		<pubDate>Sun, 08 Nov 2009 15:37:14 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=315</guid>
		<description><![CDATA[Passare strutture dati e oggetti aweb services Microsoft ASP.net implementando funzionalità asincrone AJAX. Esporre web services lato client utilizzando lo script manager diventa molto semplice]]></description>
			<content:encoded><![CDATA[<p>Per chi sviluppa  <strong>applicazioni AJAX</strong> avanzate usando il <strong>framework Microsoft ASP.NET</strong> sa che è possibile <strong>esporre facilmente web services lato client</strong> utilizzando lo <strong>ScriptManager</strong>, ovvero è possibile richiamarli comodamente tramite javascript utilizzando chiamate a metodi omonimi. Questa funzionalità è senza dubbio parecchio comoda, soprattutto per chi sa che questi automatismi non sono così immediati programmando ad esempio in <strong>php</strong>, dove per fare richieste javascript a pagine web bisogna utilizzare costrutti e quindi crearsi tutto il codice di interfacciamento a metodi/pagine server side.</p>
<p>Come possiamo vedere da questo tutorial: <a href="http://www.asp.net/ajax/documentation/live/Tutorials/ExposingWebServicesToAJAXTutorial.aspx" target="_blank">Exposing Web Services to Client Script in ASP.net AJAX</a> è semplice creare una classe che estende <strong>System.web.services.Webservice</strong>, contenente metodi che effettuano logiche server side e possono restituire dati lato client, e implementare funzionalità asincrone (AJAX) in modo molto naturale.</p>
<p>Al di là di questo aspetto (se non lo conoscete potete approfondirlo dall&#8217;articolo sopra linkato) che sostanzialmente riduce le tempistiche di sviluppo di callback asincrone, volevo affrontare qui in questo articoletto la possibilità di <strong>passare e restituire oggetti strutturati tramite web services</strong> per poi ritrovaseli nello stesso modo sia lato client sia lato server.</p>
<p>E&#8217; infatti possibile definire una funzione callback javascript lato client che richiama un metodo web service e passargli l&#8217;oggetto objParams per poi elaborarlo lato server. Qui sotto un semplice esempio scritto sul momento:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> callback_sum<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> objParams = <span class="kw2">new</span> Object<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">objParams .<span class="me1">x</span> = <span class="nu0">2</span>;</div>
</li>
<li class="li1">
<div class="de1">objParams .<span class="me1">y</span> = <span class="nu0">3</span>;</div>
</li>
<li class="li1">
<div class="de1">objParams.<span class="me1">z</span> = <span class="nu0">0</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">SimpleWebService.<span class="me1">doSum</span><span class="br0">&#40;</span>objParams, callback_sum_success, callback_sum_fail<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> callback_sum_success<span class="br0">&#40;</span>res<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">alert</span><span class="br0">&#40;</span>res.<span class="me1">z</span><span class="br0">&#41;</span>; <span class="co1">//5</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//gestire eventuali exception</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> callback_sum_fail<span class="br0">&#40;</span>ex<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//ex._message;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>Lato server dobbiamo definire lo stesso oggetto (chiamato Sum) con le stesse proprietà dell&#8217;oggetto client side. N.B. Nell&#8217;esempio uso VB.net ma vale lo stesso in c#.net</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">Public</span> Class SimpleWebService</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Inherits System.<span class="me1">Web</span>.<span class="me1">Services</span>.<span class="me1">WebService</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;webmethod <span class="br0">&#40;</span><span class="kw1">True</span><span class="br0">&#41;</span>&gt; _</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">Public</span> <span class="kw1">Function</span> doSum<span class="br0">&#40;</span>ByVal sumObj <span class="kw1">As</span> <span class="kw1">Sum</span><span class="br0">&#41;</span> <span class="kw1">As</span> <span class="kw1">Sum</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sumObj.<span class="me1">z</span> = sumObj.<span class="me1">x</span> + sumObj.<span class="me1">y</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> sumObj</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">End</span> <span class="kw1">Function</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">Public</span> Class <span class="kw1">Sum</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Public</span> x <span class="kw1">As</span> <span class="kw1">Integer</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Public</span> y <span class="kw1">As</span> <span class="kw1">Integer</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">Public</span> z <span class="kw1">As</span> <span class="kw1">Integer</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">End</span> Class</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">End</span> Class</div>
</li>
<li class="li1">
<div class="de1">&lt;/webmethod&gt;</div>
</li>
</ol>
</div>
<p>Come possiamo notare con questo metodo possiamo veramente sbizzarrirci a passare dei dati complessi da client a server e da server a client, migliorando sicuramente anche l&#8217;estendibilità e la chiarezza del codice, e aumentando a piacere il numero di parametri senza variare la firma del metodo del web service..ecc<br />
Esistono però dei limiti sulle tipologie di dati più complessi tipici dei linguaggi moderni, ma rimando ad approfondimenti sui prossimi articoli..</p>
<p><strong>Rifermenti:</strong><br />
<a href="http://http://www.asp.net/ajax/documentation/live/Tutorials/ExposingWebServicesToAJAXTutorial.aspx">http://www.asp.net/ajax/documentation/live/Tutorials/ExposingWebServicesToAJAXTutorial.aspx</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fpassare-oggetti-javascript-asp-net-web-services.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/passare-oggetti-javascript-asp-net-web-services.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il futuro per le web application è javascript!</title>
		<link>http://www.programmazione-web.com/il-futuro-per-le-web-application-e-javascript.php</link>
		<comments>http://www.programmazione-web.com/il-futuro-per-le-web-application-e-javascript.php#comments</comments>
		<pubDate>Sat, 10 Oct 2009 19:44:35 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Applicazioni]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[callback]]></category>
		<category><![CDATA[web 2]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=263</guid>
		<description><![CDATA[C'è sempre più javascript nelle applicazioni moderne, il web ormai per le applicazioni web si sta spostando sempre più client side, il futuro sta proprio sulle nostre macchine non sul server.. chiamate asincrone in AJAX e logiche lato client.]]></description>
			<content:encoded><![CDATA[<p>Ebbene si&#8230; il tempo passa, ogni giorno vedo <strong>sempre più javascript nelle applicazioni moderne</strong>, il web ormai per le <strong>applicazioni web</strong> si sta spostando sempre più <strong>client side</strong>, il futuro <strong>sta proprio sulle nostre macchine </strong>non sul server, a cui viene lasciato il solo scopo di essere un<strong> contenitore di dati da interrogare</strong>, su cui mantenere e garantire le logiche di sicurezza delle nostre applicazioni, e molti automatismi di presentation ora stanno direttamente sul client! Questo grazie alle nuove necessità del web 2.0, che vuole diventare la sostituzione quasi totale alle <strong>applicazioni stand alone</strong>, quindi avere maggiori interazioni, più velocità grazie a <strong>callback asincrone di dati (AJAX) </strong>e automatismi che non necessitano postback di dati, che rendono il web inutilmente lento e macchinoso.</p>
<p>Ora poi è diventato tutto molto più semplice grazie ai numerosi <strong>framework javascript, come jQuery</strong> che grazie ad un layer aggiuntivo ci consentono di utilizzare con maggiore potenza e velocità tutta <strong>la ricchezza del linguaggio JS</strong>.</p>
<p>Attualmente chi non saprà utilizzare questi strumenti al top rimarrà indietro.. verrà schiacciato dalla concorrenza agguerrita dei<strong> programmatori del futuro</strong> che non si fermano a fare andare le proprie applicazioni, ma vogliono sempre il massimo!</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fil-futuro-per-le-web-application-e-javascript.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/il-futuro-per-le-web-application-e-javascript.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jquery 1.3 la ferrari dei framework javascript!</title>
		<link>http://www.programmazione-web.com/jquery-13-la-ferrari-dei-framework-javascript.php</link>
		<comments>http://www.programmazione-web.com/jquery-13-la-ferrari-dei-framework-javascript.php#comments</comments>
		<pubDate>Wed, 14 Jan 2009 12:06:12 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[ferrari dei javascript]]></category>
		<category><![CDATA[framework javascript]]></category>
		<category><![CDATA[jquery 1.3]]></category>
		<category><![CDATA[jquery sizzle]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=137</guid>
		<description><![CDATA[E' stata rilasciata la nuova versione del noto framework javascript Jquery, giunta alla release 1.3!

Questa versione oltre ad offrire alcune novità, è stata ottimizzata per migliorare notevolmente le performance di esecuzione, rendondo questo framework come da titolo: la Ferrari dei javascript!]]></description>
			<content:encoded><![CDATA[<p>E&#8217; stata rilasciata la nuova versione del noto <strong>framework javascript Jquery</strong>, giunta alla release 1.3!</p>
<p>Questa versione oltre ad offrire alcune novità, è stata ottimizzata per<strong> migliorare notevolmente le performance di esecuzione</strong>, rendondo questo framework come da titolo: <strong>la Ferrari dei javascript!</strong></p>
<div id="attachment_140" class="wp-caption alignnone" style="width: 310px"><a href="http://www.programmazione-web.com/wp-content/uploads/2009/01/jquery_insertion_benchmark-300x225.jpg"><img class="size-full wp-image-140" title="jquery insertion benchmark" src="http://www.programmazione-web.com/wp-content/uploads/2009/01/jquery_insertion_benchmark-300x225.jpg" alt="jquery insertion benchmark" width="300" height="225" /></a><p class="wp-caption-text">jquery insertion benchmark</p></div>
<p>Come novità è stato introdotto <a href="http://sizzlejs.com/" target="_blank"><strong>Sizzle</strong></a>, un nuovo<strong> CSS selector engine</strong>, che è ora totalmente indipendente dalla libreria, al quale hanno contribuito anche gli svilupppatori di <a href="http://dojofoundation.org/" target="_blank">Dojo</a>. Questo aggiunta ha permesso di ridurre sensibilmente del 49% i tempi di esecuzione, rispetto alla precedente versione del ramo 1.2.x, e sempre grazie a Sizzle, si ha la possibilità di associare eventi ad oggetti creati in realtime, il tutto senza preoccuparsi di dover rieseguire il bind di eventi agli stessi in caso di aggiornamento del DOM.</p>
<p>Inoltre è stata resa indipendente dal framework anche la parte di compatibilità cross-browser, la quale è stata delegata ad un oggetto esterno; questo accorgimento permetterà di mantenere piu controllabile ed estensibile il framework.</p>
<p>Si possono trovare informazioni sulla <a href="http://docs.jquery.com/Release:jQuery_1.3" target="blank">documentazione di release ufficiale</a> del progetto.</p>
<p>La <a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.min.js" target="blank">versione compressa</a> è di solo 18Kb e quella di <a href="http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.js">development</a> circa 114Kb.</p>
<p><strong>Riferimenti:</strong><br />
<a href="http://jquery.com/" target="blank">http://jquery.com</a>.</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fjquery-13-la-ferrari-dei-framework-javascript.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/jquery-13-la-ferrari-dei-framework-javascript.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial Codeigniter per l&#8217;integrazione di ajax con jquery</title>
		<link>http://www.programmazione-web.com/tutorial-codeigniter-integrazione-ajax-jquery.php</link>
		<comments>http://www.programmazione-web.com/tutorial-codeigniter-integrazione-ajax-jquery.php#comments</comments>
		<pubDate>Sat, 07 Jun 2008 14:07:36 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[ajax codeigniter]]></category>
		<category><![CDATA[codeigniter ajax jquery]]></category>
		<category><![CDATA[codeigniter jquery]]></category>
		<category><![CDATA[codeigniter tutorial jquery]]></category>
		<category><![CDATA[framework codeigniter.]]></category>
		<category><![CDATA[framework php con jquery]]></category>
		<category><![CDATA[inserire jquery codeigniter]]></category>
		<category><![CDATA[jquery codeigniter ajax]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=56</guid>
		<description><![CDATA[In questo tutorial per il framework Codeigniter, tradotto parzialmente dall'articolo di Michael Wales, verrà mostrato come implementare in Codeigniter un caricamento dinamico di record da un database, utilizzando chiamate AJAX con l'usilio di Jquery.]]></description>
			<content:encoded><![CDATA[<p><strong>Tutorial Codeigniter per l&#8217;integrazione di ajax con jquery<br />
</strong></p>
<p>Negli ultimi due anni passati, AJAX è diventato velocemente uno strumento ormai necessario per ogni web developer. In effetti grazie all&#8217;utilizzo di AJAX è possibile velocizzare le applicazioni, diminuendo il consumo di banda e i tempi di caricamento delle pagine, donando inoltre una maggiore usabilità.</p>
<p>In questo tutorial per il framework Codeigniter, tradotto parzialmente dall&#8217;articolo di <a title="Michael Wales Wen site" href="http://michaelwales.com" target="_blank">Michael Wales</a>, verrà mostrato come implementare in Codeigniter un caricamento dinamico di record da un database, utilizzando chiamate AJAX con l&#8217;usilio di Jquery.</p>
<p>La nostra applicazione sarà composta da una lista di post di un blog, che sono suddivisi in due tipologie: la lista dei pubblicati o la lista delle bozze. Inizialmente la nostra applicazione funzionerà senza l&#8217;utilizzo di chiamate AJAX; poi successivamente inseriremo questa funzionalità utilizzando un semplice script jQuery, garantendo comunque la fruibilità del sito anche se l&#8217;utente non ha abilitato il supporto javascript (perdendo solamente le chiamate asincrone AJAX ma non i contenuti da visualizzare).</p>
<p><strong>Creazione dell&#8217;applicazione</strong></p>
<p>Nella nostra installazione del framework Codeigniter, creiamo una nuova classe controller che in questo tutorial chiameremo Post.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./controllers/post.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Post <span class="kw2">extends</span> Controller <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> Post<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; parent::<span class="me2">Controller</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> index<span class="br0">&#40;</span><span class="re0">$status</span> = <span class="kw2">NULL</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;<span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">model</span><span class="br0">&#40;</span><span class="st0">&#8216;posts&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$status</span> === <span class="kw2">NULL</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$template</span><span class="br0">&#91;</span><span class="st0">&#8216;posts&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$this</span>-&gt;<span class="me1">posts</span>-&gt;<span class="me1">get_where</span><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;id &gt;&#8217;</span>=&gt;<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<span class="re0">$template</span><span class="br0">&#91;</span><span class="st0">&#8216;posts&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$this</span>-&gt;<span class="me1">posts</span>-&gt;<span class="me1">get_where</span><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;status&#8217;</span>=&gt;<span class="re0">$status</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$template</span><span class="br0">&#91;</span><span class="st0">&#8216;partial&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&#8216;post/list&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&#8216;view&#8217;</span>, <span class="re0">$template</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<div id="result_box" dir="ltr">Qui viene delineata la struttura di base della nostra applicazione. Il nostro metodo index() accetta un parametro facoltativo (status), che se non è definito tornera&#8217; tutti i posti all&#8217;interno del nostro blog.</div>
<div dir="ltr">Il controller attraverso il modello, effettua una query ritornando la lista dei post del blog sulla base di determinati parametri, settando una variabile chiamata partial, che verra&#8217; utilizzata anche in seguito per la visualizzazione dei risultati parziali.<br />
Ma passiamo subito al modello per comprendere completamente il funzionamento del controller visto precendentemente.</div>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./models/posts.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Posts <span class="kw2">extends</span> Model <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">var</span> <span class="re0">$_table</span> = <span class="st0">&#8216;posts&#8217;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> Posts<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; parent::<span class="me2">Model</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">function</span> get_where<span class="br0">&#40;</span><span class="re0">$params</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$params</span><span class="br0">&#41;</span> &gt; <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$query</span> = <span class="re0">$this</span>-&gt;<span class="me1">db</span>-&gt;<span class="me1">get_where</span><span class="br0">&#40;</span><span class="re0">$this</span>-&gt;_table, <span class="re0">$params</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$query</span>-&gt;<span class="me1">num_rows</span><span class="br0">&#40;</span><span class="br0">&#41;</span> &gt; <span class="nu0">0</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$query</span>-&gt;<span class="me1">result_array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;<span class="kw1">return</span> <span class="kw2">FALSE</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<div dir="ltr">Nel metodo get_where () si nota come l&#8217;autore voleva assicurarsi che la funzione ricevesse un parametro, altrimenti restituisce inesorabilemnte un FALSE al controller al posto dell&#8217;array contenente i dati.</p>
<p>Giunti a questo punto si puo&#8217; dire che la nostra applicazione e&#8217; praticamente fatta e ora possiamo iniziare a giocare con AJAX! Inanzittutto vediamo di creare il file della vista principale, che verrà caricata insieme all header e al footer dal nostro controller.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./views/view.php</span></div>
</li>
<li class="li1">
<div class="de1">&lt; ?php <span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&#8216;_global/header&#8217;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&lt; ?php <span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="re0">$partial</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&lt; ?php <span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&#8216;_global/footer&#8217;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Questa vista come vediamo include i file header e footer che sono all&#8217;interno della directory _global, creata dall&#8217;autore con l&#8217;underscore davanti al nome per forzarla a rimanere per comodita&#8217; sempre in alto della lista dei file e direcory.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./views/_global/header.php</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=<span class="st0">&quot;&lt;?php echo base_url(); ?&gt;&lt;!&#8211;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">assets/js/jquery-1.2.6.min.js&quot;</span> type=<span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;!&#8211;mce:<span class="nu0">0</span>&#8211;&gt;&lt;/script&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;script src=<span class="st0">&quot;&lt;?php echo base_url(); ?&gt;&lt;!&#8211;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">assets/js/ajax_tut.js&quot;</span> type=<span class="st0">&quot;text/javascript&quot;</span>&gt;&lt;!&#8211;mce:<span class="nu0">1</span>&#8211;&gt;&lt;/script&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=<span class="st0">&quot;wrapper&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=<span class="st0">&quot;header&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;h1&gt;CodeIgniter Ajax Tutorial&lt;/h1&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;div id=<span class="st0">&quot;nav&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;ul&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;li&gt;&lt; ?php <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> anchor<span class="br0">&#40;</span><span class="st0">&#8221;</span>, <span class="st0">&#8216;All Posts&#8217;</span><span class="br0">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;li&gt;&lt; ?php <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> anchor<span class="br0">&#40;</span><span class="st0">&#8216;published&#8217;</span>, <span class="st0">&#8216;Published&#8217;</span><span class="br0">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;li&gt;&lt; ?php <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> anchor<span class="br0">&#40;</span><span class="st0">&#8216;draft&#8217;</span>, <span class="st0">&#8216;Drafts&#8217;</span><span class="br0">&#41;</span>; ?&gt;&lt;/li&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;/ul&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>In questo file header avrete notato  l&#8217;utilizzo della funzione base_url () al fine di garantire ai file statici inclusi di avere un riferiemento assoluto che funziona sempre. Non fate caso agli utlimi 3 tags di chiusura sbagliati nel header. perche&#8217; non sono riuscito a toglierli qui nel blog, perche&#8217; il mio syntax highlighter me li continua ad aggiungere <img src='http://www.programmazione-web.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  infatti andrebbero nel footer ovvero i tag di chiusura del div wapper del body e del tag html.</p>
<p>Ecco la vista che implementa le viste dei post del blog, parziali e non:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./views/post/list.php</span></div>
</li>
<li class="li1">
<div class="de1">&lt;div id=<span class="st0">&quot;loading&quot;</span>&gt;Loading&#8230;&lt;/div&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=<span class="st0">&quot;list&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt; ?php</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$posts</span> <span class="kw1">as</span> <span class="re0">$post</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#8216;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;h3&gt;&#8217;</span> . <span class="re0">$post</span><span class="br0">&#91;</span><span class="st0">&#8216;title&#8217;</span><span class="br0">&#93;</span> . <span class="st0">&#8216;&lt;span class=&quot;created_on&quot;&gt;Posted on: &#8216;</span> . <span class="re0">$post</span><span class="br0">&#91;</span><span class="st0">&#8216;created_on&#8217;</span><span class="br0">&#93;</span> . <span class="st0">&#8216;&lt;/span&gt;&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">?&gt;&lt;/h3&gt;</div>
</li>
<li class="li2">
<div class="de2">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>Nella vista  (post/list.php) non credo ci sia niente da chiarire, tutto quello che fa è effettuare un ciclo sull&#8217;array posts ritornato dal modello tramite il controller e stampare il titolo e la data di creazione di ogni post.</p>
<p>La nostra applicazione è praticamente completa! Ora è giunto il momente di fare gli ultimi passi e accertarsi che funzioni. Per prima cosa andremo a creare il database con la tabella e i dati per il test utilizzando il file sql di dump:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">CREATE</span> <span class="kw1">TABLE</span> <span class="kw1">IF</span> <span class="kw1">NOT</span> <span class="kw1">EXISTS</span> <span class="st0">`posts`</span> <span class="br0">&#40;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">`id`</span> int<span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span> <span class="kw1">UNSIGNED</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span> <span class="kw1">AUTO_INCREMENT</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">`title`</span> varchar<span class="br0">&#40;</span><span class="nu0">255</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">`status`</span> varchar<span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span> <span class="kw1">NOT</span> <span class="kw1">NULL</span>,</div>
</li>
<li class="li2">
<div class="de2"><span class="st0">`created_on`</span> date <span class="kw1">NOT</span> <span class="kw1">NULL</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">PRIMARY</span> <span class="kw1">KEY</span> &nbsp;<span class="br0">&#40;</span><span class="st0">`id`</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#41;</span> ENGINE=MyISAM &nbsp;<span class="kw1">DEFAULT</span> CHARSET=utf8 <span class="kw1">AUTO_INCREMENT</span>=<span class="nu0">4</span> ;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">INSERT</span> <span class="kw1">INTO</span> <span class="st0">`posts`</span> <span class="br0">&#40;</span><span class="st0">`id`</span>, <span class="st0">`title`</span>, <span class="st0">`status`</span>, <span class="st0">`created_on`</span><span class="br0">&#41;</span> <span class="kw1">VALUES</span></div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#40;</span><span class="nu0">1</span>, <span class="st0">&#8216;First post.&#8217;</span>, <span class="st0">&#8216;published&#8217;</span>, <span class="st0">&#8217;2008-05-27&#8242;</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span><span class="nu0">2</span>, <span class="st0">&#8216;This is the second post.&#8217;</span>, <span class="st0">&#8216;published&#8217;</span>, <span class="st0">&#8217;2008-05-27&#8242;</span><span class="br0">&#41;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span><span class="nu0">3</span>, <span class="st0">&#8216;This is a draft.&#8217;</span>, <span class="st0">&#8216;draft&#8217;</span>, <span class="st0">&#8217;2008-05-28&#8242;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Ora dobbiamo effettuare alcuni cambiamenti alle configurazioni, ricordando che i settaggi potrebbero essere leggermente diversi dalla vostra situazione, ma sicuramente e&#8217; un buon punto di partenza.</p>
<p>Per prima cosa accertevi che sia configurato in modo appropiato il base url</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./config/config.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$config</span><span class="br0">&#91;</span><span class="st0">&#8216;base_url&#8217;</span><span class="br0">&#93;</span> &nbsp; &nbsp;= <span class="st0">&quot;http://localhost/ajax_tut/&quot;</span>;</div>
</li>
</ol>
</div>
<p>Ora, assicuratevi che potete connettervi al vostro database</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./config/database.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;hostname&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;localhost&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;username&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;root&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;password&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;database&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;ajax_tut&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span><span class="br0">&#91;</span><span class="st0">&#8216;default&#8217;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&#8216;dbdriver&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;mysql&quot;</span>;</div>
</li>
</ol>
</div>
<p>Dobbiamo caricare automaticamente le librerie e gli helper necessari per renderci lo sviluppo piu semplice e veloce.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./config/autoload.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$autoload</span><span class="br0">&#91;</span><span class="st0">&#8216;libraries&#8217;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;database&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Infine, dobbiamo riderezionare la route di codeigniter sul nostro controller di post che chiamera&#8217; in automatico il metodo index() contenuto in esso.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./config/routes.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$route</span><span class="br0">&#91;</span><span class="st0">&#8216;([a-zA-Z]+)&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&#8216;post/index/$1&#8242;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$route</span><span class="br0">&#91;</span><span class="st0">&#8216;default_controller&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&#8216;post&#8217;</span>;</div>
</li>
</ol>
</div>
<p>Qui sotto possiamo vedere il css agganciato alla nostra applicazione:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">// File: ./assets/css/style<span class="re1">.css</span></div>
</li>
<li class="li1">
<div class="de1">body <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">font<span class="re2">:<span class="nu0">0</span></span><span class="re1"><span class="re3">.8em</span></span> Verdana;</div>
</li>
<li class="li1">
<div class="de1">text-align<span class="re2">:center</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">a<span class="re2">:link</span>, a<span class="re2">:active</span>, a<span class="re2">:hover</span>, a<span class="re2">:visited</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">color<span class="re2">:blue</span>;</div>
</li>
<li class="li1">
<div class="de1">text-decoration<span class="re2">:none</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">#wrapper</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">margin<span class="re2">:<span class="nu0">0</span></span> <span class="kw2">auto</span>;</div>
</li>
<li class="li1">
<div class="de1">text-align<span class="re2">:left</span>;</div>
</li>
<li class="li2">
<div class="de2">width<span class="re2">:<span class="re3">600px</span></span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">#nav</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">background</span>:<span class="re0">#DDD</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">#nav</span> a <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">padding<span class="re2">:<span class="re3">10px</span></span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">#nav</span> a<span class="re2">:hover</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">background</span>:<span class="re0">#FFF</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">#nav</span> ul <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">padding<span class="re2">:<span class="re3">5px</span></span>;</div>
</li>
<li class="li1">
<div class="de1">list-style<span class="re2">:none</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">#nav</span> li <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">display<span class="re2">:inline</span>;</div>
</li>
<li class="li1">
<div class="de1">margin-right<span class="re2">:<span class="nu0">1</span></span><span class="re1"><span class="re3">.5em</span></span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">#loading</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">display<span class="re2">:none</span>;</div>
</li>
<li class="li1">
<div class="de1">font-weight<span class="re2">:bold</span>;</div>
</li>
<li class="li1">
<div class="de1">text-align<span class="re2">:center</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">#list</span> h3 <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">display<span class="re2">:inline</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="re1">.created_on</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">color</span>:<span class="re0">#AAA</span>;</div>
</li>
<li class="li1">
<div class="de1">font-size<span class="re2">:<span class="nu0">0</span></span><span class="re1"><span class="re3">.7em</span></span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<div id="result_box" dir="ltr"><strong>Ma e&#8217; AJAX?</strong><br />
Ci sono diversi modi per implementare AJAX in un sito web, soprattutto in un sito realizzato con Codeigniter. Noi potremmo tornare XML o JSON e fare poi il parsing all&#8217;interno del nostro controller, o semplicemente inviare tutto direttamente alle nostre viste e gestire solo la formattazione (se non è richiesto il parsing). Probabilmente il modo più semplice, all&#8217;interno di CodeIgniter, è semplicemente caricare un file di vista proprio come con un normale richiesta! Sappiamo tutti pero&#8217; che per caricare una vista abbiamo bisogno sempre di un metodo controller che ne implementa la logica, gestendo le eventuali chiamate verso il modello, e inviando i dati per la visualizzazione. Alcuni preferiscono creare una nuova classe, in particolare per le richieste AJAX, altri creano nuovi metodi all&#8217;interno della stessa classe che verranno utilizzate solo da AJAX.</p>
<p>L&#8217;autore, invece preferisce tenere la classe asciutta e utilizzare lo stesso controller effettuando solamente  alcune modifiche richiamando librerie esterne, dal momento che il nostro metodo attuale richiede solamente una vista (che comprende header footer e partial).</p>
<p>Per fare questo crea quindi prima una classe libreria, contenente un metodo che ci consenta di sapere se si tratta di una richiesta AJAX o meno e poi utilizzare questa libreria come una condizione per determinare che cosa fare in base al tipo di richiesta.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./libraries/request.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">class</span> Request <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">function</span> is_ajax<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#8216;HTTP_X_REQUESTED_WITH&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> &amp;amp;&amp;amp; <span class="br0">&#40;</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#8216;HTTP_X_REQUESTED_WITH&#8217;</span><span class="br0">&#93;</span> == <span class="st0">&#8216;XMLHttpRequest&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>In questa classe tramite il metodo is_ajax(), semplicemente viene effettuato un controllo sulla variabile HTTP_X_REQUESTED_WITH che è un header jQuery settato quando noi effettuamo una richiesta di tipo AJAX.</p>
<p>Ora nel controller dobbiamo richiamare questa libreria per effettuare il controllo e inviare solamente i dati parziali alla vista.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">// File: ./controllers/post.php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> index<span class="br0">&#40;</span><span class="re0">$status</span> = <span class="kw2">NULL</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">model</span><span class="br0">&#40;</span><span class="st0">&#8216;posts&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">library</span><span class="br0">&#40;</span><span class="st0">&#8216;request&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$status</span> === <span class="kw2">NULL</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$template</span><span class="br0">&#91;</span><span class="st0">&#8216;posts&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$this</span>-&gt;<span class="me1">posts</span>-&gt;<span class="me1">get_where</span><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;id &gt;&#8217;</span>=&gt;<span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="re0">$template</span><span class="br0">&#91;</span><span class="st0">&#8216;posts&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$this</span>-&gt;<span class="me1">posts</span>-&gt;<span class="me1">get_where</span><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;status&#8217;</span>=&gt;<span class="re0">$status</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re0">$template</span><span class="br0">&#91;</span><span class="st0">&#8216;partial&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&#8216;post/list&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$this</span>-&gt;<span class="me1">request</span>-&gt;<span class="me1">is_ajax</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="re0">$template</span><span class="br0">&#91;</span><span class="st0">&#8216;partial&#8217;</span><span class="br0">&#93;</span>, <span class="re0">$template</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">view</span><span class="br0">&#40;</span><span class="st0">&#8216;view&#8217;</span>, <span class="re0">$template</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Ora vediamo come vengono implementate in semplice stile jQuery le chiamate ajax, assicuriamoci pero&#8217; di aver scaricato la <a title="jquery library" href="http://jquery.com" target="_blank">liberia jQuery</a>, che sia nella cartella dell&#8217;applicazione in /assets/js/ e venga agganciata correttamente all&#8217;header.php in _global.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">//File: ./assets/js/ajax_tut.js</span></div>
</li>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;$<span class="br0">&#40;</span><span class="st0">&#8216;#nav a&#8217;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span>event<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; event.<span class="me1">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;#list&#8217;</span><span class="br0">&#41;</span>.<span class="me1">load</span><span class="br0">&#40;</span><span class="kw1">this</span>.<span class="me1">href</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span><span class="st0">&#8216;#loading&#8217;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStart</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStop</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span><span class="st0">&#8216;#list&#8217;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStart</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">hide</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="me1">ajaxStop</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Javascript e jQuery sono al di fuori dello scopo di questo tutorial, quindi se avete problemi a capire quanto sopra riportato vi consiglio di fare riferimento alla documentazione ufficiale sul sito di jQuery. Spero che questo tutorial vi abbia chiarito le idee su come includere AJAX, in particolare jQuery nelle vostre applicazioni con Codeigniter, ringrazio Michael Wales per il suo tutorial che mi ha permesso di realizzare questa traduzione sul mio blog.</p>
<p>Se avete commenti, postate pure.. Vi ricordo che il codice del solo applicativo senza il framework codeigniter e&#8217; scaricabile qui sotto.</p>
</div>
<p><strong>Riferimenti</strong></p>
<p><a title="Michael Wales Codeigniter ajax with jquery" href="http://michaelwales.com/tutorials/codeigniter-ajax-with-jquery/" target="_blank">http://michaelwales.com/tutorials/codeigniter-ajax-with-jquery/</a><br />
<a title="Michael Wales Codeigniter ajax with jquery Download" href="http://www.michaelwales.com/wp-content/tutorials/codeigniter-ajax-with-jquery/codeigniter-ajax-with-jquery.zip" target="_blank">http://www.michaelwales.com/wp-content/tutorials/codeigniter-ajax-with-jquery/codeigniter-ajax-with-jquery.zip</a><br />
<a title="Codeigniter framework" href="http://www.codeigniter.com" target="_blank">http://www.codeigniter.com</a><br />
<a title="jquery library" href="http://jquery.com" target="_blank">http://jquery.com</a></p>
</div>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Ftutorial-codeigniter-integrazione-ajax-jquery.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/tutorial-codeigniter-integrazione-ajax-jquery.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jquery Ajax content loading, caricare contenuti html in un div</title>
		<link>http://www.programmazione-web.com/jquery-ajax-content-loading-caricare-contenuti-div.php</link>
		<comments>http://www.programmazione-web.com/jquery-ajax-content-loading-caricare-contenuti-div.php#comments</comments>
		<pubDate>Mon, 19 May 2008 17:40:17 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[ajax content loading]]></category>
		<category><![CDATA[ajax loading content]]></category>
		<category><![CDATA[Ajax XMLHttpRequest]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[jquery content loading]]></category>
		<category><![CDATA[jquery loading div.]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/jquery-ajax-content-loading-caricare-contenuti-div.php</guid>
		<description><![CDATA[Jquery Ajax content loading (XMLHttpRequest), caricare contenuti html in un div. Capita sempre piu&#8217; spesso di voler caricare porzioni di contenuti presenti in un sito, senza dover per forza ricaricare interamente tutto il contenuto della pagina.. questo tipo di interazioni sono la novita&#8217; che contraddistinguono i siti e le applicazioni web di ultima generazione, che [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Jquery Ajax content loading (<a href="http://it.wikipedia.org/wiki/XMLHttpRequest" title="wikipedia XMLHttpRequest " target="_blank">XMLHttpRequest</a>), caricare contenuti html in un div. </strong></p>
<p>Capita sempre piu&#8217; spesso di voler caricare porzioni di contenuti presenti in un sito, senza dover per forza ricaricare interamente tutto il contenuto della pagina.. questo tipo di interazioni sono la novita&#8217; che contraddistinguono i siti e le applicazioni web di ultima generazione, che consentono di avere una rapporto di usabilita&#8217; molto piu&#8217; alto grazie a chiamate asincrone (Ajax), che ci permettono di interagire con le applicazioni in modo piu&#8217; fruibile, avvicinando il web a vere e proprie applicazioni desktop.</p>
<p>Per realizzare questo tipo di chiamate dinamiche e interattive si utilizza solitamente l&#8217;oggetto XMLHttpRequest che e&#8217; un elemento fondamentale della tecnica di sviluppo web conosciuta con l&#8217;acronimo Ajax.</p>
<p>Un esempio di script che realizza questo tipo di interazioni lo possiamo vedere in <a href="http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm" title="ajax content xmlhttprequest" target="_blank">questa pagina</a>.</p>
<p>Ma in questo post voglio pero&#8217; illustrarvi come realizzare lo stesso meccanismo utilizzando il <a href="http://jquery.com" title="Framework javascript jQuery" target="_blank">framework jQuery</a>, che lo implementa in modo molto semplice, senza dover direttamenti occuparci dei dettagli sottostanti. Ricordando che jQuery a mio parere e&#8217; il framework javascript che ha il rapporto tra semplicita&#8217;/potenza piu&#8217; alto e anche le operazioni piu&#8217; complesse vengono realizzate con pochissime righe di codice.</p>
<p>Detto questo vi illustro come caricare contenuti dinamici usando jquery in un div a cui gli e&#8217; stato assegnato un id css univoco:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery-latest.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">$(document).ready(function(){
</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $(&quot;#contentArea&quot;).load(&quot;pagina.php&quot;);
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">});
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=&quot;contentArea&quot;&gt; &lt;/div&gt;</div>
</li>
</ol>
</div>
<p>se invece vogliamo variare il contenuto del div a secondo del link che primiamo possiamo creare una funzione:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery-latest.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery-latest.js&quot; type=&quot;text/javascript&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;function loadContent(id) {
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; $(&quot;#contentArea&quot;).load(&quot;rpc.php?o=&quot;+id+&quot;&quot;);
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; }
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&lt;body onLoad=&quot;loadContent(1);&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;a href=&quot;javascript:loadContent(1);&quot;&gt;Tab 1&lt;/a&gt; |
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;a href=&quot;javascript:loadContent(2);&quot;&gt;Tab 2&lt;/a&gt; |
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;a href=&quot;javascript:loadContent(3);&quot;&gt;Tab 3&lt;/a&gt; |
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;a href=&quot;javascript:loadContent(999);&quot;&gt;This content doesn&#8217;t exist&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;div id=&quot;contentArea&quot; style=&quot;margin: 20px 0px 10px 10px; border: 1px solid #CCC;&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/body&gt;</div>
</li>
</ol>
</div>
<p>Chiaramente nel file rpc.php richiamato dalla funzione load di jQuery, dovra&#8217; essere implementata una struttura che ci permetta in base alla scelta numerica passata alla funzione loadContent() di selezionare il contenuto da restituire, questo puo &#8216; essere realizzato usando uno switch case. Se non e&#8217; sufficientemente chiaro il funzionamento potete scaricare il pacchetto da modificare sul sito di nodstrum.com presente nei riferimenti.</p>
<p><strong><br />
Riferimenti:</strong><br />
<a href="http://nodstrum.com/2007/03/20/jquery-content-loading/" title="jquery content loading" target="_blank">http://nodstrum.com/2007/03/20/jquery-content-loading/</a><br />
<a href="http://docs.jquery.com/Ajax/load" title="jquery ajax load function" target="_blank">http://docs.jquery.com/Ajax/load</a><br />
<a href="http://it.wikipedia.org/wiki/XMLHttpRequest" title="wikipedia XMLHttpRequest " target="_blank">http://it.wikipedia.org/wiki/XMLHttpRequest </a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fjquery-ajax-content-loading-caricare-contenuti-div.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/jquery-ajax-content-loading-caricare-contenuti-div.php/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Jquery plugin risoluzione dinamica tramite media queries</title>
		<link>http://www.programmazione-web.com/jquery-plugin-risoluzione-dinamica-tramite-media-queries.php</link>
		<comments>http://www.programmazione-web.com/jquery-plugin-risoluzione-dinamica-tramite-media-queries.php#comments</comments>
		<pubDate>Wed, 30 Apr 2008 14:03:23 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[javascript risoluzione dinamica]]></category>
		<category><![CDATA[jquery media queries]]></category>
		<category><![CDATA[jquery plugin]]></category>
		<category><![CDATA[risoluzione pagina dinamica]]></category>
		<category><![CDATA[risuluzione dinamica pagina.]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/jquery-plugin-risoluzione-dinamica-tramite-media-queries.php</guid>
		<description><![CDATA[Jquery plugin risoluzione dinamica tramite media queries Vi voglio segnalare un altro ottimo plugin JQuery, che ritengo molto utile quando si sviluppano siti con layout a dimensioni fisse e con la possibilità di avere diverse risoluzioni a schermo. Questo plugin Jquery implementa funzionalità di media queries, ovvero delle espressioni logiche dichiarate nel media type, che [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Jquery plugin risoluzione dinamica tramite media queries</strong></p>
<p>Vi voglio segnalare un altro ottimo plugin <a href="http://jquery.com/" title="Jquery " target="_blank">JQuery</a>, che ritengo molto utile quando si sviluppano siti con layout a dimensioni fisse e con la possibilità di avere diverse risoluzioni a schermo. Questo plugin Jquery implementa funzionalità di <a href="http://www.w3.org/TR/css3-mediaqueries/" title="css 3 Media Queries" target="_blank">media queries</a>, ovvero delle espressioni  logiche dichiarate nel media type, che ci consentono di creare una dinamismo nelle nostre pagine in base a dei controlli (min-width e max-width in px), determinando quale css applicare dinamicamente in base alla risuluzione dell&#8217;utente. Molto importante ricordare che questo jquery plugin media queries rispetta gli standard W3C ed è compatibile con tutti i browser moderni, ovvero >= IE6.</p>
<p>Lo script come possiamo vedere dall esempio sotto riportato, è molto semplice da utilizzare, come del resto lo sono tutti i Jquery che stò apprezzando e utilizzando sempre di più nei miei siti web. Ecco un esempio di utilizzo:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;link rel=&quot;stylesheet&quot; href=&quot;default.css&quot; type=&quot;text/css&quot; media=&quot;screen, projection&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;wider.css&quot; media=&quot;only screen and (min-width: 1100px)&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;smaller.css&quot; media=&quot;only screen and (max-width: 820px)&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&lt;script src=&quot;jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery.mediaqueries.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>Come possiamo vedere nel codice abbiamo un CSS di default per i media screen e projection al quale vengono aggiunti altri 2 CSS che per la visualizzazione a schermo attraverso i controlli diventano esclusivi.</p>
<p>Sulla <a href="http://www.protofunc.com/scripts/jquery/mediaqueries/" title="JQuery plugin media queries " target="_blank">pagina </a>ufficiale del plugin è possibile testarne il funzionamento effettuando un resize della pagina notando il cambiamento del colore del box, indice di switching del css.</p>
<p><strong>Riferimenti: </strong><br />
<a href="http://www.protofunc.com/scripts/jquery/mediaqueries/" title="JQuery plugin media queries " target="_blank">http://www.protofunc.com/scripts/jquery/mediaqueries/ </a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fjquery-plugin-risoluzione-dinamica-tramite-media-queries.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/jquery-plugin-risoluzione-dinamica-tramite-media-queries.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jquery media plugin per inserire contenuti multimediali nelle pagine web</title>
		<link>http://www.programmazione-web.com/jquery-media-plugin-contenuti-multimediali.php</link>
		<comments>http://www.programmazione-web.com/jquery-media-plugin-contenuti-multimediali.php#comments</comments>
		<pubDate>Sun, 20 Apr 2008 09:47:56 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[framework ajax]]></category>
		<category><![CDATA[integrazione jquery.]]></category>
		<category><![CDATA[jquery ajax plugin]]></category>
		<category><![CDATA[jquery media plugin]]></category>
		<category><![CDATA[jquery plugin]]></category>
		<category><![CDATA[libreria jquery]]></category>
		<category><![CDATA[media jquery]]></category>
		<category><![CDATA[plugin jquery]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/jquery-media-plugin-per-inserire-contenuti-multimediali-nella-pagine-web.php</guid>
		<description><![CDATA[Jquery media plugin per inserire contenuti multimediali nelle pagine web Jquery é una libreria javascript clientside veloce e concisa, tra l&#8217;altro molto famosa ed utilizzata, che permette di gestire eventi, integrare animazioni, inserire iterazioni di tipo ajax alle pagine web. Questo framework javascript e&#8217; stata pensato appunto per cambiare e facilitare il modo di scrivere [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Jquery media plugin per inserire contenuti multimediali nelle pagine web</strong><br />
<a title="Jquery" href="http://jquery.com/" target="_blank"><br />
Jquery</a> é una libreria javascript clientside veloce e concisa, tra l&#8217;altro molto famosa ed utilizzata, che permette di gestire eventi, integrare animazioni, inserire iterazioni di tipo ajax alle pagine web. Questo framework javascript e&#8217; stata pensato appunto per cambiare e facilitare il modo di scrivere codice javascript, semplificando e potenziando le nostre applicazioni web, arricchendole di maggiore usabilitá e interattivitá. In questo post non voglio di certo ripetere nozioni scontate che si trovano ovunque sul web, ma vorrei piú che altro introdurre l&#8217;uso di alcuni plugin jquery che utilizzo nelle mie realizzazioni che sono a mio parere molto utili.</p>
<p>Uno di questi é il <a title="Jquery Media Plugin" href="http://www.malsup.com/jquery/media/" target="_blank">jQuery Media Plugin</a> che supporta la conversione di un semplice e conciso tag in un un markup per un contenuto multimediale. Puo&#8217; essere utilizzato per integrare facilmente in una pagina web media come Flash, Quicktime, Wndows Media Player, Real Player, MP3, Silverlight, PDF e tanti altri. In sostanza questo plugin converte l&#8217;elemento html, solitamente il tag con una classe css assegnata, in un  contenente tag come object o iframe necessari per rendere all&#8217;utente il contenuto multimediale.</p>
<p>Questo media plugin jquery puo&#8217; essere utilizzato in tutte quelle situazioni in cui si vuole rendere veloce l&#8217;inserimento di questi contenuti, e dotare anche gli utenti inesperti di un modo semplice per aggiornare i contenuti multimediali dei siti web, inserendo semplicemente dei link. </p>
<p>Vediamo che includendo le librerie necessarie del jquery e del <a title="Jquery Media Plugin" href="http://www.malsup.com/jquery/media/jquery.media.js" target="_blank">media plugin</a>:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery.media.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>e aggiungendo semplicemente questo codice che assegna al tag con la classe css .media il media plugin:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>possiamo ottenere <a title="Demo jquery media plugin video" href="http://www.malsup.com/jquery/media/video.html" target="_blank">questo</a> tipo di risultato visibile nella demo:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;a class=&quot;media&quot; href=&quot;sample.mov&quot;&gt;My Quicktime Movie&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;a class=&quot;media&quot; href=&quot;sample.swf&quot;&gt;My Flash Movie&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;a class=&quot;media&quot; href=&quot;sample.wma&quot;&gt;My Audio File&lt;/a&gt;</div>
</li>
</ol>
</div>
<p>questi link verranno tradotti automaticamente in questo codice:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;div class=&quot;media&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;object codebase=&quot;http://www.apple.com/qtactivex/qtplugin.cab&quot;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; classid=&quot;clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;param name=&quot;src&quot; value=&quot;sample.mov&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;embed src=&quot;sample.mov&quot;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pluginspage=&quot;http://www.apple.com/quicktime/download/&quot;&gt;&lt;/embed&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;/param&gt;&lt;/object&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &lt;div&gt;My Quicktime Movie&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;
</div>
</li>
<li class="li1">
<div class="de1">&lt;div class=&quot;media&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;object codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7&quot;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; type=&quot;application/x-oleobject&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;param name=&quot;src&quot; value=&quot;sample.swf&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;embed src=&quot;sample.swf&quot; &nbsp;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type=&quot;application/x-shockwave-flash&quot;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pluginspage=&quot;http://www.apple.com/quicktime/download/&quot;&gt;&lt;/embed&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;/param&gt;&lt;/object&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;div&gt;My Flash Movie&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;
</div>
</li>
<li class="li2">
<div class="de2">&lt;div class=&quot;media&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;object codebase=&quot;http://www.apple.com/qtactivex/qtplugin.cab&quot;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; classid=&quot;clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6&quot;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; type=&quot;application/x-oleobject&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;param name=&quot;url&quot; value=&quot;sample.wma&quot;&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;embed src=&quot;sample.wma&quot; &nbsp;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type=&quot;application/x-mplayer2&quot;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pluginspage=&quot;http://www.microsoft.com/Windows/MediaPlayer/&quot;&gt;&lt;/embed&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;/param&gt;&lt;/object&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;div&gt;My Audio File&lt;/div&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>E&#8217; possibile inoltre  passare paramentri e specificare alcune opzioni al nostro media plugin integrando un altro codice jquery chiamato metadata plugin scaricabile da <a title="Jquery Metadata plugin" href="http://jqueryjs.googlecode.com/svn/trunk/plugins/metadata/jquery.metadata.js" target="_blank">qui</a>, ovviamente anch&#8217; esso dovrá essere incluso nel nostro codice della pagina insieme agli altri jquery:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery.js&quot; type=&quot;text/javascript&quot;&gt;&lt;!&#8211;mce:3&#8211;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery.metadata.js&quot; type=&quot;text/javascript&quot;&gt;&lt;!&#8211;mce:4&#8211;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery.media.js&quot; type=&quot;text/javascript&quot;&gt;&lt;!&#8211;mce:5&#8211;&gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>Come possiamo vedere con questo jquery metadata plugin possiamo specificare ulteriori opzioni al media plugin e quindi rendere piú configurabili in nostri contenuti.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;a class=&quot;media {width: 400, height: 300, autoplay: true}&quot; href=&quot;sample.mov&quot;&gt;My Quicktime Movie&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;a class=&quot;media {width: 400, height: 30, autoplay: true}&quot; href=&quot;sample.wma&quot;&gt;My Audio File&lt;/a&gt;</div>
</li>
</ol>
</div>
<p>Chiaramente questa é sola una intruduzione all&#8217;utilizzo, per avere maggiori dettagli fate riferimento al sito ufficiale.</p>
<p><strong>Riferimenti:</strong><br />
<a title="Jquery Media Plugin" href="http://www.malsup.com/jquery/media/" target="_blank">http://www.malsup.com/jquery/media/</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fjquery-media-plugin-contenuti-multimediali.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/jquery-media-plugin-contenuti-multimediali.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usare librerie Ajax nel framework php Codeigniter</title>
		<link>http://www.programmazione-web.com/usare-librerie-ajax-nel-framework-codeigniter.php</link>
		<comments>http://www.programmazione-web.com/usare-librerie-ajax-nel-framework-codeigniter.php#comments</comments>
		<pubDate>Sat, 05 Apr 2008 17:46:37 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Sviluppo applicazioni]]></category>
		<category><![CDATA[ajax framework codeigniter]]></category>
		<category><![CDATA[helper ajax codeigniter]]></category>
		<category><![CDATA[librerie ajax codeigniter]]></category>
		<category><![CDATA[prototype codeigniter]]></category>
		<category><![CDATA[scriptaculous codeigniter.]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/usare-librerie-ajax-nel-framework-codeigniter.php</guid>
		<description><![CDATA[Usare librerie Ajax nel framework php Codeigniter In questo post del blog vediamo come integrare facilmente nelle nostre applicazioni script ajax utilizzando sempre il framework php codeigniter. Il pacchetto scaricabile da qui, &#8220;Ajax for Codeigniter&#8221; ci permette di fornire funzionalitá ajax nelle nostre applicazioni web, utilizzando semplicemente degli helpers che includono le librerie ajax, in [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Usare librerie Ajax nel framework php Codeigniter</strong></p>
<p>In questo post del blog vediamo come integrare facilmente nelle nostre applicazioni script ajax utilizzando sempre il framework php codeigniter.  Il pacchetto scaricabile da <a href="http://codeigniter.com/wiki/File:AJAX-for-CodeIgniter.zip/" title="ajax for codeigniter framework" target="_blank">qui</a>, &#8220;Ajax for Codeigniter&#8221; ci permette di fornire funzionalitá ajax nelle nostre applicazioni web, utilizzando semplicemente degli helpers che includono le librerie ajax, in particolare potremmo utilizzare le librerie <a href="http://www.prototypejs.org/" title="protorype javascript" target="_blank">prototype</a> e <a href="http://script.aculo.us/" title="Scipt.acolo.us ajax framework" target="_blank">scriptaculous</a>.</p>
<p>Vediamo in pochi passi come configurare il framework, poi per i dettagli di utilizzo fate riferimento alla guida all&#8217;interno del pacchetto. </p>
<p>Scompattare il pacchetto &#8220;ajax for codeigniter&#8221; scaricato e inserire il file Ajax.php nella cartella di default delle librerie:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">www-root/<a href="http://www.php.net/system"><span class="kw3">system</span></a>/libraries/</div>
</li>
</ol>
</div>
<p>Inserire i file javascript nella root directory del web server, che potrebbe essere ad esempio:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">www-root/javascript/</div>
</li>
</ol>
</div>
<p>Se nel web server avete il mod_rewrite abilitato, accertatevi che la cartella javascript sia accessibile, inserendo questo file .htaccess:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">RewriteEngine on</div>
</li>
<li class="li1">
<div class="de1">RewriteCond $<span class="nu0">1</span> !^<span class="br0">&#40;</span>index\.php|images|stylesheets|&lt;strong&gt;javascript&lt;/strong&gt;<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">RewriteRule ^<span class="br0">&#40;</span>.*<span class="br0">&#41;</span>$ /index.php/$<span class="nu0">1</span> <span class="br0">&#91;</span>L<span class="br0">&#93;</span></div>
</li>
</ol>
</div>
<p>Ora semplicemente potete includere i file javascript che volete utilizzare nei vostri files html:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;javascript/prototype.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;javascript/effects.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;javascript/dragdrop.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;javascript/controls.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>In fine, per caricare la libreria AJAX si procede come qualsiasi altra libreria di Codeigniter, o si carica direttamente dentro il Controller dove si vuole utilizzarla:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$this</span>-&gt;<span class="me1">load</span>-&gt;<span class="me1">library</span><span class="br0">&#40;</span><span class="st0">&#8216;ajax&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Oppure é possibile caricarla automaticamente attraverso l&#8217;autoload delle librerie, inserendola nel vettore della variabile incaricata nel file <strong>system/application/config/autoload.php</strong>:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$autoload</span><span class="br0">&#91;</span><span class="st0">&#8216;libraries&#8217;</span><span class="br0">&#93;</span> = <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;database&#8217;</span>, <span class="st0">&#8216;session&#8217;</span>, <span class="st0">&#8216;&lt;strong&gt;ajax&lt;/strong&gt;&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Ora tutto quello che dobbiamo fare per usare l&#8217;AJAX helper é chiamare <em>$this->ajax</em>. Ad esempio:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$this</span>-&gt;<span class="me1">ajax</span>-&gt;<span class="me1">link_to_remote</span><span class="br0">&#40;</span><span class="st0">&quot;Login&quot;</span>, <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st0">&#8216;url&#8217;</span> =&gt; <span class="st0">&#8216;/login&#8217;</span>, <span class="st0">&#8216;update&#8217;</span> =&gt; <span class="st0">&#8216;divblock&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Per testarne il funzionamento mi sono fatto una piccola pagina di test dove dopo aver caricato nel Controller la libreria ajax, come abbiamo visto precedentemente, nella vista ho inserito un div su cui attraverso un link posso applicare un effetto di fade:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=<span class="st0">&quot;my_text&quot;</span> style=<span class="st0">&quot;border: 1px solid #CCC&quot;</span>&gt;</div>
</li>
<li class="li1">
<div class="de1">orem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc non orci. Donec enim. Fusce eget libero. Nam semper malesuada lacus.</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt; ? <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$this</span>-&gt;<span class="me1">ajax</span>-&gt;<span class="me1">link_to_function</span><span class="br0">&#40;</span><span class="st0">&quot;test ajax Fade&quot;</span>,<span class="st0">&quot;Effect.Fade(&#8216;my_text&#8217;)&quot;</span><span class="br0">&#41;</span>; <span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p><strong>Riferimenti:</strong><br />
<a href="http://codeigniter.com/wiki/AJAX_for_CodeIgniter/" title="ajax for codeigniter framework" target="_blank">http://codeigniter.com/wiki/AJAX_for_CodeIgniter</a></p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Fusare-librerie-ajax-nel-framework-codeigniter.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/usare-librerie-ajax-nel-framework-codeigniter.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

