<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2440873366719031474</id><updated>2012-01-27T05:54:31.520-08:00</updated><category term='form validator asp ajax'/><category term='Libreria Persits'/><category term='popolare dinamicamente select ajax asp'/><category term='Google Apis'/><category term='Ajax Apis'/><category term='traduzione google asp'/><category term='remarketing'/><category term='validare form asp ajax'/><category term='traduzione simultanea diverse lingue'/><category term='rilevare chiusura browser'/><category term='Google Code Playground'/><category term='contare utenti realmente online'/><category term='XML'/><category term='Script Asp + Ajax'/><category term='server.execute'/><category term='include virtual'/><category term='una mappa con asp'/><category term='query localizzate'/><category term='Google Search'/><category term='caricare file grandi dimensioni aruba'/><category term='google Pac-Man'/><category term='utenti online'/><category term='include file'/><category term='Google Adwords'/><category term='mappa link asp'/><category term='mappa sito asp'/><category term='Script Asp'/><category term='upload asp aruba'/><category term='marketing'/><category term='motori ricerca'/><category term='upload file superiori 4 mb aruba'/><category term='anniversario 30 anni Pac-Man'/><category term='utenti online asp ajax'/><category term='Il mondo Google'/><category term='upload persits'/><category term='upload multiplo'/><category term='errori in query'/><category term='Upload Aruba'/><title type='text'>Script ASP, Ajax, Javascript</title><subtitle type='html'>In questo blog trovate la soluzione ad alcuni dei più comuni problemi che si incontrano nella programmazione di siti web, utilizzando come linguaggio lato server ASP (active server pages), come lato client Javascript e come connessione server-client Ajax</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-3383454910623207968</id><published>2010-06-30T07:02:00.000-07:00</published><updated>2010-06-30T07:39:27.684-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='traduzione simultanea diverse lingue'/><category scheme='http://www.blogger.com/atom/ns#' term='Script Asp'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Code Playground'/><category scheme='http://www.blogger.com/atom/ns#' term='traduzione google asp'/><title type='text'>Traduzione automatica google code diverse lingue</title><content type='html'>&lt;h1&gt;Traduzione automatica in diverse lingue by Google&lt;/h1&gt;&lt;br /&gt;&lt;h3&gt;Come inserire nel proprio sito la possibilità di tradurre da/in tutte le lingue in diretta mentre scriviamo&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Nel pochissimo tempo a disposizione rispunto con qualche piccolo post...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Già vi ho parlato di quanto siano utili tutte quelle belle cosette che trovate in Google Code Playground...ne ho usate parecchie in questi mesi, e vi lascio un piccolo esempio su come sfruttare il servizio di traduzione in diretta.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Con questo servizio si potranno tradurre tutte (o quasi) le lingue in tutte le altre...e ci si può sbizzarrire su come applicare questi script.&lt;br /&gt;Io ad esempio, lo uso nel pannello di amministrazione di un sito, dove scrivo la versione italiana dei menu e dei testi, e mentre scrivo Google mi traduce nelle lingue che voglio. Ovvio che si parla sempre di traduzioni non proprio "umane"..ma comunque stanno raffinando molto le traduzioni (Google lo fa anche con l'aiuto degli utenti volontari che vogliono dare versioni + corrette delle traduzioni).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Atri campi di applicazioni potrebbero ad esempio essere le chat...sto chattando con una persona inglese...scrivo in italiano..e l'altra persona vede già la traduzione.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Comunque passiamo allo script: io ho fatto solo qualche piccola modifica per lanciare lo script mentre digito il testo ed inserire la traduzione in automatico.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Questo è lo script: vediamo prima un link alla libreria "jsapi" dal server Google e poi uno script javascript.&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="http://www.google.com/jsapi"&amp;gt; &lt;br /&gt;    &amp;lt;/script&amp;gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt; &lt;br /&gt;    google.load("language", "1"); &lt;br /&gt; &lt;br /&gt;    function initialize() { &lt;br /&gt;      var text = document.getElementById("sezione_it").value; &lt;br /&gt;      google.language.detect(text, function(result) { &lt;br /&gt;        if (!result.error &amp;&amp; result.language) { &lt;br /&gt;          google.language.translate(text, result.language, "en", &lt;br /&gt;                                    function(result) { &lt;br /&gt;            var translated = document.getElementById("translation_en"); &lt;br /&gt;            if (result.translation) { &lt;br /&gt;              translated.innerHTML = '&amp;lt;input type="text" name="sezione_en" id="sezione_en" value="'+result.translation+'" /&amp;gt;';&lt;br /&gt;            } &lt;br /&gt;          }); &lt;br /&gt;        } &lt;br /&gt;      }); &lt;br /&gt;    } &lt;br /&gt;     &lt;br /&gt; &lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Ecco l'esempio funzionante:&lt;/p&gt;&lt;br /&gt;&lt;iframe name="I1" style="width: 600px; height: 200px;" scrolling="no" border="0" frameborder="0" src="http://www.milanositi.it/script/asp-javascript/traduzione-diretta-google.asp"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;p&gt;E qui potete scaricare l'esempio: &lt;a href="http://www.milanositi.it/script/asp-javascript/milanositi-traduzione-diretta-google.rar" title="Traduzione in diretta con Google"&gt;milanositi: traduzione in diretta con Google&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Nell'esempio ho solo messo la possibilità di tradurre dall'italiano nelle altre 3 lingue...ma si può fare veramente di tutto.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-3383454910623207968?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/3383454910623207968/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/06/traduzione-automatica-google-code.html#comment-form' title='8 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/3383454910623207968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/3383454910623207968'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/06/traduzione-automatica-google-code.html' title='Traduzione automatica google code diverse lingue'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-9016729233693318325</id><published>2010-05-21T14:57:00.003-07:00</published><updated>2010-05-21T14:57:44.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google Pac-Man'/><category scheme='http://www.blogger.com/atom/ns#' term='anniversario 30 anni Pac-Man'/><title type='text'>Google e anniversario 30 anni Pac-Man</title><content type='html'>&lt;h1&gt;Gioca a Pac-Man sulla Home page di Google!&lt;/h1&gt;&lt;br /&gt;&lt;h3&gt;Per l'anniversario dei 30 anni di Pac-Man, Google cede addirittura lo spazio del proprio logo per far giocare gli utenti a Pac-Man!&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;A volte Google ci stupisce anche con piccole cose...è proprio il caso della Home page dedicata all'anniversario dei 30 anni della nascita di Pac-Man... Quando apri quella Home page...ti fermi a guardare il logo...ma non penseresti mai di poter fare una partita al vecchio Pac-Man!!!....e invece no!..Per incanto, aspettando qualche secondo, riportandoci nei primi anni 80, ecco iniziare una nuova partita!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Dopo i primi secondi di stupore...mano sulle frecce della tastiera...e si comincia a scappare dai fantasmini!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Vabbè...piccolo post "off-topic" per una delle tante cose carine di Google!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-9016729233693318325?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/9016729233693318325/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/05/google-e-anniversario-30-anni-pac-man.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/9016729233693318325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/9016729233693318325'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/05/google-e-anniversario-30-anni-pac-man.html' title='Google e anniversario 30 anni Pac-Man'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-7237043346782194651</id><published>2010-04-27T12:06:00.000-07:00</published><updated>2010-04-27T12:19:31.670-07:00</updated><title type='text'>Google supporta le Rich Snippets anche nelle serp italiane</title><content type='html'>&lt;h1&gt;Finalmente Google supporta le Rich Snippets nelle Serp Italiane!&lt;/h1&gt;&lt;br /&gt;&lt;h3&gt;&lt;i&gt;Arriva dal Blog Ufficiale di Google la notizia del supporto dei "Microformats" anche nelle Serp di altre Nazioni...tra le quali anche l'Italia&lt;/i&gt;&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Per chi non sapesse cosa siano i Microformats, brevemente si tratta di un protocollo riconosciuto dagli spider di Google, attravrso il quale si può arricchire il risultato del nostro sito su Google, fornendo un sacco di altre informazioni non visibili apparentemente agli utenti, ma che invece appariranno nei risultati di ricerca.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Attualmente sono supportate:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Ricette di cucina&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Commenti e recensioni&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Profili di Attività&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Profili personali&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Prodotti&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ad esempio si potranno arricchire i Prodotti con delle recensioni e votazioni, che verranno riconosciute da Google, e che verranno poi visualizzate sinteticamente, nella pagina dei risultati della ricerca, differenziando sicuramente l'aspetto del risultato dall'aspetto degli altri risultati...forse spingendo anche l'utente a cliccare su questo risultato arricchito.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In contesti come Profili di Aziende o Personali, si potrà dare a Google ufficialmente, l'indicazione degli indirizzi, dei numeri di telefono...ecc...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Infine anche per i prodotti si potranno fornire un sacco di altre informazioni...lo proverò subito nel mio software per ecommerce...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Secondo me siamo solo all'inizio, e verranno supportati un sacco di altri elementi!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-7237043346782194651?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/7237043346782194651/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/04/google-rich-snippets-serp-italiane.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/7237043346782194651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/7237043346782194651'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/04/google-rich-snippets-serp-italiane.html' title='Google supporta le Rich Snippets anche nelle serp italiane'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-6857838071443815112</id><published>2010-04-26T01:09:00.000-07:00</published><updated>2010-04-26T05:49:24.576-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Adwords'/><category scheme='http://www.blogger.com/atom/ns#' term='remarketing'/><title type='text'>Marketing o Remarketing con Google Adwords?</title><content type='html'>&lt;h1&gt;Marketing o Remarketing?&lt;/h1&gt;&lt;br /&gt;&lt;h3&gt;Il nuovo strumento per raggiungere gli utenti che hanno già visitato il nostro sito&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Nuovo strumento a disposizione in &lt;b&gt;Google Adwords&lt;/b&gt;: fare "&lt;i&gt;Remarketing&lt;/i&gt;"!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Con questo strumento Google ci da la possibilità di "inseguire" gli utenti che hanno già visitato il nostro sito, e riproporre nuovamente i nostri annunci, per farli rientrare e raggiungere il nostro obiettivo.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Tecnicamente si dovrà aggiungere uno script (tipo quello di Google Analytics), in tutte le pagine del nostro sito, per le quali vogliamo ne vengano tracciati i visitatori.&lt;br /&gt;&lt;br /&gt;In Adwords invece aggiungero una voce nel menu "pubblico", e gli dirò quale gruppo di annunci riproporre agli utenti che ci hanno già visitato.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Un esempio di Remarketing efficacie: dopo aver salvato la visita di un utente, l'utente esce ed accede ad un altro sito concorrente(magari sta cercando un prodotto trovato sul nostro sito, ma cerca un prezzo inferiore), possiamo proporgli messaggi diversi del tipo "Hey, non ti ha soddisfatto il prezzo sul mio sito? Allora ti faccio uno sconto del 10%!"...probabilmente l'utente vorrà tornare...e noi, inserendo un parametro nel link di questo annuncio, possiamo proporre all'utente che rientra, un prezzo scontato! (questo è solo un esempio di applicazione del servizio...)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Secondo me non è male!...voi che dite?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-6857838071443815112?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/6857838071443815112/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/04/marketing-o-remarketing-con-google.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/6857838071443815112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/6857838071443815112'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/04/marketing-o-remarketing-con-google.html' title='Marketing o Remarketing con Google Adwords?'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-412009922396020402</id><published>2010-04-16T13:25:00.000-07:00</published><updated>2010-04-16T13:48:09.291-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='motori ricerca'/><category scheme='http://www.blogger.com/atom/ns#' term='errori in query'/><category scheme='http://www.blogger.com/atom/ns#' term='query localizzate'/><category scheme='http://www.blogger.com/atom/ns#' term='Il mondo Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Search'/><title type='text'>Google Suggest in base alla propria zona geografica</title><content type='html'>&lt;h1&gt;Google Suggest localizzato&lt;/h1&gt;&lt;br /&gt;&lt;h3&gt;I suggerimenti di Google pertinenti anche alla zona geografica della ricerca&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Nell'ultimo post del &lt;a href="http://googleblog.blogspot.com/" target="_blank" title="Blog ufficiale Google"&gt;blog ufficiale di Google&lt;/a&gt;, ci rivelano alcune future modifiche nel restituire risultati di ricerca, e nei suggerimenti che compaiono mentre si scrive nella input di ricerca (Google Suggest):&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Suggerimenti localizzati&lt;/b&gt;: Google terrà presente la zona geografica dalla quale partirà la ricerca, e verranno suggerite query più targettizzate. Quindi un utente di Milano, vedrà comparire diversi suggerimenti, rispetto ad un utente di Roma o Palermo. Questo ovviamente per parole che possano generare suggerimenti utili più per una zona che per un'altra.&lt;br /&gt;Quindi ad esempio, se stessi cercando informazioni su un monumento della mia città, inserendo "Duomo", l'utente di Milano si vedrà proporre in prima posizione il "Duomo di Milano", un utente di Firenze vedrà "Duomo di Firenze", uno di Modena "Duomo di Modena"..ecc...&lt;br /&gt;&lt;br /&gt;L'obiettivo dovrebbe essere quello di ridurre ancora il tempo che l'utente deve impiegare per trovare ciò che gli interessa.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Ricerca di persone migliorata&lt;/b&gt;: la seconda modifica, riguarda la possibilità di trovare più facilmente persone sul Web. Capita infatti spesso, di cercare una persona con nome e cognome, ma non riuscire poi a trovare la persona desiderata a causa dell'omonimia di tante altre persone.&lt;br /&gt;Google quindi implementerà maggiormente l'abbinamento del nome e cognome, ad esempio alla professione. Quindi se sto cercando Mario Rossi, e so che è un Dottore, abbinerò nella query il termine "Dottore", e Google, che con i suoi algoritmi avrà già selezionato i vari Mario Rossi che hanno pertinenza anche con la parola Dottore, mi proporrà direttamente risultati più precisi.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Errori di scrittura nella query&lt;/b&gt;&lt;/li&gt;: infine , nei casi di errore di scrittura nella query, proporrà direttamente i risultati ottenuti con la parola corretta in automatico(per ora in circa 30 lingue), senza il classico "forse intendevi...", e quindi fare una seconda chiamata al loro Server... Ti daranno direttamente il risultato correggendo la parola inserita.&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-412009922396020402?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/412009922396020402/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/04/google-suggest-in-base-alla-propria.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/412009922396020402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/412009922396020402'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/04/google-suggest-in-base-alla-propria.html' title='Google Suggest in base alla propria zona geografica'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-5054207849562685150</id><published>2010-04-16T08:31:00.000-07:00</published><updated>2010-04-19T08:16:54.043-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='upload asp aruba'/><category scheme='http://www.blogger.com/atom/ns#' term='Libreria Persits'/><category scheme='http://www.blogger.com/atom/ns#' term='Upload Aruba'/><title type='text'>Upload Persits Aruba - Proprietà dei file caricati</title><content type='html'>&lt;h1&gt;Upload Persits su Aruba&lt;/h1&gt;&lt;br /&gt;&lt;h3&gt;Elenco delle informazioni che possiamo ricavare dai file caricati&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;In questo post, vorrei iniziare ad elencare le varie proprietà che possiamo ricavare con la libreria Persits, dai file che stiamo caricando sul nostro server.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Dopo le prime due righe tipiche per richiamare l'oggetto, e per comunicargli dove andare a caricarlo:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;Set Upload = Server.CreateObject("Persits.Upload")&lt;br /&gt;percorso = Server.MapPath("/public/")&lt;br /&gt;Upload.Save (percorso)&lt;br /&gt;%&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;settiamo "File"&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Set File = Upload.Files("nomedellainput") 'il nome della input, è quello della input di tipo "file" della form che chiama lo script &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;possiamo iniziare ad estrarre tutte le informazioni che ci servono:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Per ottenere il nome del file: File.filename&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Per ottenere l'altezza se fosse un'immagine: File.ImageHeight&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Per ottenere la larghezza se fosse un'immagine: File.ImageWidth&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Per controllare il tipo di immagine, se carico un'immagine: File.ImageType&lt;br /&gt;&lt;br /&gt;Se non ho caricato un file "immagine", mi restituisce la stringa "UNKNOWN" (utile per fare eventuali controlli)&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Per controllare la dimensione del file: File.Size&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Se poi dalla form, voglio passare altre informazioni con altre input, posso recuperarle in questo modo:&lt;br /&gt;&lt;br /&gt;valoredellainput=Upload.Form("nomedellainput")&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-5054207849562685150?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/5054207849562685150/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/04/upload-persits-aruba-proprieta-dei-file.html#comment-form' title='4 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/5054207849562685150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/5054207849562685150'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/04/upload-persits-aruba-proprieta-dei-file.html' title='Upload Persits Aruba - Proprietà dei file caricati'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-8889252137123803441</id><published>2010-03-19T07:48:00.000-07:00</published><updated>2010-04-16T17:31:22.436-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google Code Playground'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Apis'/><category scheme='http://www.blogger.com/atom/ns#' term='Ajax Apis'/><title type='text'>Google Code Playground Ajax Javascript Apis</title><content type='html'>&lt;h1&gt;Google Code Playground&lt;/h1&gt;&lt;br /&gt;&lt;h2&gt;Le librerie Javascript/Ajax messe a disposizione da Google&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;Vi siete mai chiesti se ci fosse la possibilità di utilizzare una mappa come quella di Google Analytics come questa?&lt;/p&gt;&lt;br /&gt;&lt;div id="map_canvas"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Oppure come questa?&lt;/p&gt;&lt;br /&gt;&lt;div id="map_canvas2"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Un grafico popolato dal nostro database, magari prelevando i dati con ASP?&lt;/p&gt;&lt;br /&gt;&lt;div id="chart_div"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Beh...la risposta ovviamente è sì!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;E ovviamente è come al solito "San Google" a venirci incontro e metterci a disposizione un mondo che ancora pochi Webmaster conoscono...ma che quando seguiranno il link che troverenno in fondo a questo post, in molti ne saranno entusiasti!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Questi sono solo 3 piccoli esempi!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Troverete mille altri esempi, oltre alle oramai famosissime api per Google Map:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Traduzioni nelle varie lingue&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Ricerca di post dei blog&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Ricerca delle News&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Ricerche di libri o brevetti&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Google Earth&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Ricerca di immagini con vari filtri&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Ricerca di video da YouTube&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Ricerche classiche dal Web&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Collegamenti Friend Feed&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Ed infine le importantissime librerie Javascript come Scriptaculous, Dojo, Mootools, Prototype...&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;In sostanza abbiamo anche la possibilità di sfruttare queste librerie, scaricandole dai server super-veloci di Google!!!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Quello che farò io, (nel pochissimo tempo che ho a disposizione....), sarà proporre post nei quali userò l'interazione tra queste librerie ed il codice di programmazione server-side ASP.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Quindi vedremo come popolare dinamicamente le mappe, i grafici...prelevando dati con ASP...e cose del genere...&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Siete impazienti?&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Ecco il link: &lt;a href="http://code.google.com/apis/ajax/playground" title="Google Code Playground Apis Ajax Javascript" target="_blank"&gt;Google Code Playground Apis Ajax Javascript&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Mi raccomando...fatene buon uso...e divertitevi!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-8889252137123803441?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/8889252137123803441/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/03/google-code-playground-ajax-javascript.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/8889252137123803441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/8889252137123803441'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/03/google-code-playground-ajax-javascript.html' title='Google Code Playground Ajax Javascript Apis'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-6798359307469928211</id><published>2010-02-25T14:38:00.000-08:00</published><updated>2010-03-19T04:17:53.541-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='validare form asp ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Script Asp + Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='form validator asp ajax'/><title type='text'>Validare campi form con asp e ajax (ajax form validator)</title><content type='html'>In questo post, voglio presentare un "form validator" che ho realizzato con il caro ASP classico, e l'aiuto di Ajax.&lt;br /&gt;&lt;br /&gt;La finalità del sistema, è quello di ottenere una risposta immediata dal nostro server, sulla validità e formattazione o meno, dei dati inseriti nei campi della nostra form.&lt;br /&gt;&lt;br /&gt;Alcuni esempi potrebbero essere: ottenere subito la risposta della validità o meno di un indirizzo email (si intende la validità del formato, non che poi la mail sia reale o no), oppure la ricerca nel nostro database della presenza o meno di un dato, ad esempio nella form di registrazione di un utente, controllare subito se la username inserita sia già presente....piuttosto che controllare la validità di formattazione di una data.&lt;br /&gt;&lt;br /&gt;Ovviamente il sistema è poi aperto all'eventuale aggiunta di altri tipi di controlli, oltre a quelli che ho già inserito io.&lt;br /&gt;&lt;br /&gt;Sostanzialmente lo script è costituito da:&lt;br /&gt;- un file Javascript, che contiene il codice Ajax con la chiamata XmlHttpRequest&lt;br /&gt;- un file ASP, che contiene tutti i tipi di controlli gestiti per ora, che restituirà il messaggio positivo o negativo dopo il controllo del dato passato&lt;br /&gt;- ed infine la pagina che contiene la form, della quale vogliamo gestire i campi&lt;br /&gt;&lt;br /&gt;Ora spiego il codice Ajax, e di seguito do un breve cenno su quello ASP, ma se volete scaricare direttamente l'esempio, andate a fondo post....&lt;br /&gt;&lt;br /&gt;Codice Ajax usato:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var check;&lt;br /&gt;var valore&lt;br /&gt;var valore2&lt;br /&gt;   &lt;br /&gt;function check_valore(input, tipo_controllo, n, segno, tabella, campo, n1, n2, n3) &lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;valore=document.getElementById(input).value;&lt;br /&gt;    // branch for native XMLHttpRequest object&lt;br /&gt;    if (window.XMLHttpRequest) {&lt;br /&gt;        check= new XMLHttpRequest();&lt;br /&gt;        check.onreadystatechange =  function () {if (check.readyState == 4){ricevi_valore(input);}};&lt;br /&gt;        check.open("GET", "asp-validator.asp?tipo_controllo="+tipo_controllo+"&amp;valore="+valore+"&amp;n="+n+"&amp;segno="+segno+"&amp;tabella="+tabella+"&amp;campo="+campo+"&amp;n1="+n1+"&amp;n2="+n2+"&amp;n3="+n3, true);&lt;br /&gt;        check.send(null);&lt;br /&gt;    // branch for IE/Windows ActiveX version&lt;br /&gt;    } else if (window.ActiveXObject) {&lt;br /&gt;        check= new ActiveXObject("Microsoft.XMLHTTP");&lt;br /&gt;        if (check) {&lt;br /&gt;         check.onreadystatechange =  function () {if (check.readyState == 4){ricevi_valore(input);}};&lt;br /&gt;            check.open("GET", "asp-validator.asp?tipo_controllo="+tipo_controllo+"&amp;valore="+valore+"&amp;n="+n+"&amp;segno="+segno+"&amp;tabella="+tabella+"&amp;campo="+campo+"&amp;n1="+n1+"&amp;n2="+n2+"&amp;n3="+n3, true);&lt;br /&gt;            check.send();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function check_valore2(input, tipo_controllo, n, segno, tabella, campo, n1, n2, n3, input2) &lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;valore=document.getElementById(input).value;&lt;br /&gt;valore2=document.getElementById(input2).value;&lt;br /&gt;    // branch for native XMLHttpRequest object&lt;br /&gt;    if (window.XMLHttpRequest) {&lt;br /&gt;        check= new XMLHttpRequest();&lt;br /&gt;        check.onreadystatechange =  function () {if (check.readyState == 4){ricevi_valore(input);}};&lt;br /&gt;        check.open("GET", "asp-validator.asp?tipo_controllo="+tipo_controllo+"&amp;valore="+valore+"&amp;n="+n+"&amp;segno="+segno+"&amp;tabella="+tabella+"&amp;campo="+campo+"&amp;n1="+n1+"&amp;n2="+n2+"&amp;n3="+n3+"&amp;valore2="+valore2, true);&lt;br /&gt;        check.send(null);&lt;br /&gt;    // branch for IE/Windows ActiveX version&lt;br /&gt;    } else if (window.ActiveXObject) {&lt;br /&gt;        check= new ActiveXObject("Microsoft.XMLHTTP");&lt;br /&gt;        if (check) {&lt;br /&gt;         check.onreadystatechange =  function () {if (check.readyState == 4){ricevi_valore(input);}};&lt;br /&gt;            check.open("GET", "asp-validator.asp?tipo_controllo="+tipo_controllo+"&amp;valore="+valore+"&amp;n="+n+"&amp;segno="+segno+"&amp;tabella="+tabella+"&amp;campo="+campo+"&amp;n1="+n1+"&amp;n2="+n2+"&amp;n3="+n3+"&amp;valore2="+valore2, true);&lt;br /&gt;            check.send();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;     &lt;br /&gt;  function ricevi_valore(val) {   &lt;br /&gt;    var risposta;       &lt;br /&gt;   if (check.readyState == 2) {     &lt;br /&gt;    risposta=check.responseText;&lt;br /&gt;&lt;br /&gt;   document.getElementById('re_'+val).innerHTML = '&lt;img src="loading.gif" style="width: 16px; height: 16px;" alt="" /&gt;';&lt;br /&gt;    }&lt;br /&gt;   if (check.readyState == 4) {     &lt;br /&gt;    risposta=check.responseText;&lt;br /&gt;&lt;br /&gt;   document.getElementById('re_'+val).innerHTML = risposta;&lt;br /&gt;    }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Partiamo dalla funzione principale, che si chiama "check_valore": tra paretesi vedete i parametri che posso passare alla funzione per poi eseguire i controlli nel file ASP.&lt;br /&gt;I parametri che posso passare sono:&lt;br /&gt;&lt;br /&gt;parametri obbligatori:&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;input&lt;/span&gt;: contiene il nome del campo nel quale verrà inserito il valore da controllare&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;tipo_controllo&lt;/span&gt;: qui dico che tipo di controllo voglio fare.&lt;br /&gt;I valori possibili attualmente sono:&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;testo&lt;/span&gt;: controlla che il valore sia una stringa&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;numero_intero&lt;/span&gt;: controlla che il valore sia un numero intero&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;numero_decimale&lt;/span&gt;: controlla che il valore sia un numero decimale con virgola o punto&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;valuta&lt;/span&gt;: controlla che il valore sia un numero decimale con virgola o punto&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;lunghezza&lt;/span&gt;: controlla la lunghezza del valore, e qui entrano in gioco due parametri opzionali, cioè "n" che conterrà il numero di caratteri da controllare in base al parametro "segno", che invece indicherà se il valore dovrà essere "minore o uguale", "maggiore o uguale" o "uguale" al numero impostato nel parametro "n"&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;data&lt;/span&gt;: controlla che il valore sia una data&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;email&lt;/span&gt;: che valida il formato dell'email inserita&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;presenza_db_access_testo&lt;/span&gt;: controlla la presenza del valore in un database Access, e qui entrano in gioco altri due parametri che sono "tabella" che indica la tabella nella quale cercare, e "campo" che indica il campo nel quale cercare (il nome del database si inserisce nelle prime righe di configurazione del database, nel file ASP. Ovviamente nulla vieta di aggiungere anche un parametro per gestire anche il nome del database, nel caso ne avessimo più di uno)&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;presenza_db_access_numero&lt;/span&gt;: cerca un valore numerico nel database&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;presenza_db_mysql_testo&lt;/span&gt;: cerca un valore di testo in un database MySql&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;presenza_db_mysql_numero&lt;/span&gt;: cerca un valore numerico in un database MySql&lt;br /&gt;- &lt;span style="COLOR: rgb(0,153,0)"&gt;sicurezza_password&lt;/span&gt;: infine in questo controllo, entrano in gioco i tre parametri "n1", "n2" e "n3", che servono a definire gli intervalli di numero di caratteri, per poi ricevere il livello di sicurezza del valore inserito&lt;br /&gt;- &lt;span style="color:#009900;"&gt;sicurezza_password_img&lt;/span&gt;: come il controllo precedente, ma con una risposta di tipo visuale, come un'immagine(io ho messo un div con un colore di sfondo, ovviamente può essere sostituito con un'immagine diversa per le tre risposte "password poco sicura", "password abbastanza sicura" e "password molto sicura")&lt;br /&gt;- &lt;span style="color:#009900;"&gt;controllo_uguaglianza_stringa&lt;/span&gt;: questo tipo di controllo, fa un confronto al volo di due valori in due diverse input. Quindi può servire in casi come l'inserimento di Password e reinserimento della Password per controllo, oppure per altri tipi di dati numerici, valute o date.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;parametri opzionali:&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;n&lt;/span&gt;: per indicare un numero di caratteri da controllare&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;segno&lt;/span&gt;: indica il segno da utilizzare nel controllo del numero (valori possibili "&lt;=", "&gt;=", "=")&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;tabella&lt;/span&gt;: indica la tabella del database nella quale cercare&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;campo&lt;/span&gt;: indica il campo della tabella, nel quale cercare&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;n1&lt;/span&gt;: indica l'intervallo per ottenere la prima risposta (es. password poco sicura)&lt;br /&gt;- &lt;span style="COLOR: rgb(204,0,0)"&gt;n2&lt;/span&gt;: indica l'intervallo per ottenere la seconda risposta (es. password abbastanza sicura)&lt;br /&gt;- &lt;span style="color:#cc0000;"&gt;n3&lt;/span&gt;: indica l'intervallo per ottenere la terza risposta (es. password molto sicura)&lt;br /&gt;- &lt;span style="color:#cc0000;"&gt;input2&lt;/span&gt;: invia un valore da una seconda input, da utilizzare per fare controlli al volo tra diverse input&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Definiti i parametri della funzione, passiamo a vedere cosa fa la funzione: il corpo è la classica richiesta Ajax, con le due modalità in base al tipo di browser, che controlla se gestisce o meno l'ActiveX.&lt;br /&gt;&lt;br /&gt;I parametri vengono inviati tramite URL, con metodo "Get" (si potrebbe fare anche la versione che invia i dati con metodo "Post"), e si ottiene la risposta dal server, che avrà eseguito i controlli richiamando il nostro file ASP, chiamato "asp-validator.asp".&lt;br /&gt;La risposta verrà gestita nella seconda funzione, cioè "ricevi_valore": come vedete, anche questa funzione riceve un parametro, che non è altro che l'id del campo che stiamo controllando, e servirà per indicare l'id dell'elemento nel quale vogliamo inserire la risposta.&lt;br /&gt;Io nell'esempio ho creato, a fianco della cella che contiene l'input, una seconda cella, che ha come id, un prefisso "re_" e poi lo stesso nome della input. A questo punto, posso indicare alla mia funzione Javascript, di inserire la risposta del controllo, nella cella che ha come id "re_" + "nome input da controllare".&lt;br /&gt;&lt;br /&gt;Gli eventi gestiti per lanciare il controllo sono "onblur", che viene avviato quando si lascia la input, e "onkeyup", che viene avviato mentre si scrive, ogni volta che viene aggiunto un carattere(questo evento è usato nel controllo della sicurezza della password)&lt;br /&gt;&lt;br /&gt;Fate attenzione a dare il giusto nome della form, nella funzione javascript. (io nell'esempio l'ho chiamata "form").&lt;br /&gt;&lt;br /&gt;Qui potete testare l'esempio:&lt;br /&gt;&lt;br /&gt;&lt;iframe style="WIDTH: 100%; HEIGHT: 800px" border="0" src="http://www.milanositi.it/script/asp-ajax/form-validator-asp-ajax/form-validator-asp-ajax.asp" frameborder="0" name="I1" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Qui potete scaricare lo zip con l'esempio: &lt;a title="Form validator Asp Ajax" href="http://www.milanositi.it/public/milanositi-form-validator-asp-ajax.rar" target="_blank"&gt;milanositi: Form Validator Asp Ajax&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ovviamente, se avete voglia di aggiungere qualche controllo fatelo...che magari poi aggiorniamo il file...se volete che ne aggiunga io....fatemelo sapere!&lt;br /&gt;&lt;br /&gt;Se avete problemi nell'utilizzare il codice, fatemi sapere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-6798359307469928211?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/6798359307469928211/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2010/02/validare-campi-form-con-asp-e-ajax-ajax.html#comment-form' title='46 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/6798359307469928211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/6798359307469928211'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2010/02/validare-campi-form-con-asp-e-ajax-ajax.html' title='Validare campi form con asp e ajax (ajax form validator)'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>46</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-1938014685666308967</id><published>2009-09-28T14:52:00.000-07:00</published><updated>2010-01-14T16:08:19.902-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='utenti online'/><category scheme='http://www.blogger.com/atom/ns#' term='utenti online asp ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='Script Asp + Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='rilevare chiusura browser'/><category scheme='http://www.blogger.com/atom/ns#' term='contare utenti realmente online'/><title type='text'>Come controllare il numero degli utenti realmente online (anche se escono chiudendo il Browser)?</title><content type='html'>Un problema che spesso si presenta, quando si vuole tenere sotto controllo il numero di utenti online sul proprio sito, è rilevare se l'utente è uscito dal nostro sito chiudendo direttamente il Browser.&lt;br /&gt;Non esiste infatti un modo per rilevare l'evento che l'utente abbia abbandonato il nostro sito portandosi su un altro sito, oppure che l'utente sia uscito chiudendo direttamente il Browser.&lt;br /&gt;&lt;br /&gt;Vi presento quindi una soluzione a questo problema, realizzata con ASP ed Ajax.&lt;br /&gt;&lt;br /&gt;Per prima cosa vi spiego la teoria, poi vi illustro il codice (molto semplice). Se qualcuno volesse saltare la spiegazione, in fondo trovate lo zip con gli script.&lt;br /&gt;&lt;br /&gt;Io ho risolto il problema prendendolo al contrario: non sono io che devo vedere se l'utente è online..o se è uscito...o se ha cambiato sito... Ma è l'utente che deve segnalarmi di essere ancora sul mio sito.&lt;br /&gt;Quindi ogni tot minuti, secondi o quello che vorremo, il nostro utente, con una richiesta asincrona fatta con ajax, comunicherà al nostro server, di essere ancora sul sito. E quando segnala la sua presenza, mi salverò il minuto della sua segnalazione....a questo punto, se l'ultima segnalazione di un utente dovesse essere più vecchia del numero di minuti che io imposto, elimino semplicemente l'utente dalla mia variabile che contiene gli utenti reali sul sito.&lt;br /&gt;&lt;br /&gt;TEORICAMENTE IL GIOCO FINISCE QUI!&lt;br /&gt;Ovviamente, tra il dire ed il fare...&lt;br /&gt;&lt;br /&gt;La prima operazione, è quella tipica di creare la variabile "application", che conterrà le informazioni che mi interessano sugli utenti online.&lt;br /&gt;&lt;br /&gt;La variabile Application (che per chi non lo sapesse, è una variabile comune a tutti gli utenti, e che rimane attiva finchè tutti gli utenti non sono usciti dal mio sito), viene in genere creata o nel global.asa (nell'ASP (il global.asa è il primo file che viene letto all'entrata sul sito)), oppure possiamo decidere di crearla dove e come vogliamo. Io in questo esempio la variabile application, che chiamerò "utenti", la creo quando un utente registrato del mio sito effettua il Login.(volendo si può creare prima ancora, tenendo come riferimento per l'utente la sua sessionID)&lt;br /&gt;&lt;br /&gt;Nell'esempio creeremo un sistema generico che conta tutti gli utenti entrati sul sito, non solo quelli che effettuano il login, quindi terremo come punto di riferimento la sessionID dell'utente. La sessionID è una variabile session, che viene creata automaticamente dal server, ogni volta che entra un utente, è univoca e dura per tutto il tempo che l'utente gira sul nostro sito. Questa variabile puù essere utile ad esempio, in siti ecommerce, per riempire il carrello temporaneo, senza che l'utente si sia ancora registrato o abbia effettuato il login.&lt;br /&gt;&lt;br /&gt;Per prima cosa dobbiamo creare la variabile application, se non esiste ancora, oppure accodarci alla variabile già esistente:&lt;br /&gt;&lt;br /&gt;Per il codice di questa prima parte, aprire il file "test.asp", all'interno dello Zip.&lt;br /&gt;&lt;br /&gt;Il risultato sostanzialmente sarà un array con "SessionID---minuto della segnalazione della propria presenza o della propria entrata"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A questo punto, in ogni pagina del mio sito, avrò un piccolo script, che tramite l'oggetto XMLHttpRequest, che è la base per le richieste asincrone di Ajax, che con un intervallo fissato da noi, segnalerà la nostra presenza, ed andrà ad aggiornare l'orario nella variabile application.&lt;br /&gt;&lt;br /&gt;Nella pagina test.asp, trovate il codice Ajax che aggiorna la nostra presenza, richiamando la pagina "presenza.asp", e che legge l'elenco attuale degli utenti dalla pagina "utenti-online.asp".&lt;br /&gt;&lt;br /&gt;La tabella degli utenti online viene poi inserita, sempre con una richiesta asincrona, nella pagina test.&lt;br /&gt;&lt;br /&gt;Nella pagina "utenti-online.asp", che è la pagina che mi conta gli utenti, e che mi genera l'elenco, ho lo script che controlla se gli utenti presenti nella variabile application, hanno segnalato la loro presenza negli ultimi n minuti, che ho impostato.&lt;br /&gt;&lt;br /&gt;Se ho impostato 2 minuti, quando la differenza tra il minuto attuale e quello dell'ultima segnalazione di presenza è maggiore di 2, l'utente viene eliminato.&lt;br /&gt;&lt;br /&gt;Questa soluzione ovviamente funziona anche quando l'utente esce senza il tipico Logout, perché non essendo più sul sito, non segnalerà più la propria presenza...e quindi verrà tolto dalla variabile application.&lt;br /&gt;&lt;br /&gt;Nello zip troverete 4 pagine:&lt;br /&gt;- test.asp: che contiene il codice iniziale da inserire nella pagina di entrata&lt;br /&gt;- presenza.asp: è la pagina nella quale viene segnalata la propria presenza&lt;br /&gt;- utenti-online.asp: è la pagina che genera la tabella con l'elenco degli utenti, che conta gli utenti, e che elimina gli eventuali utenti usciti.&lt;br /&gt;- esci-test.asp: la pagina per l'uscita tipo Logout.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Se volete fare una prova, accedete a questa pagina &lt;a href="http://www.condominio3000.it/test.asp" target="_blank"&gt;utenti realmente online&lt;/a&gt; (magari accedete con due o tre browser contemporaneamente così simulate l'entrata di diversi utenti)&lt;br /&gt;&lt;br /&gt;Se volete scaricarvi lo zip clicca qui &gt;&gt; &lt;a href="http://www.condominio3000.it/public/Utenti_realmente_online_by_alessio_1976.rar"&gt;Utenti realmente online by alessio_1976&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lo script funziona con IE dal 7 in su, Firefox, Google Chrome, Safari.(testati da me)&lt;br /&gt;Spero che possa esservi utile, e se qualcuno ha da apportare migliorie e modifiche, ben venga!&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;Attenzione!&lt;/span&gt;&lt;br /&gt;Aggiornamento in data: 14/01/2010&lt;br /&gt;Aggiunta: molti utenti mi hanno chiesto come sfruttare lo script per visualizzare lo username degli utenti.&lt;br /&gt;&lt;br /&gt;Aggiungo un secondo Zip, che contiene lo script modificato, in modo che venga usata la variabile session che contiene lo Username degli utenti che accedono al sito, al posto della variabile che contiene l'Id della sessione, del precedente script.&lt;br /&gt;&lt;br /&gt;Nello Zip, ci sono un paio di file in più, che servono a simulare un Login:&lt;br /&gt; - "login.asp": che ha il modulo per entrare&lt;br /&gt; - "crea-session.asp": che crea la variabile session chiamata "username", che poi verrà utilizzata nello script, per tenere traccia della presenza dell'utente. Ovviamente il mio consiglio è sempre quello di usare l'id dell'utente, e poi con quello, ricavare eventualmente gli username da visualizzare sul sito.&lt;br /&gt;&lt;br /&gt;Vi metto il link per fare prima delle prove: &lt;a href="http://www.milanositi.it/script/asp-ajax/utenti-realmente-online/login.asp" target="_blank" title="controllo username realmente online"&gt;controllo username realmente online&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Vi allego lo zip qui... &lt;a href="http://www.milanositi.it/public/milanositi-utenti-realmente-online.rar" target="_blank" title="milanositi: utenti realmente online anche quando escono dal browser"&gt;milanositi:utenti-realmente-online&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-1938014685666308967?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/1938014685666308967/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2009/09/come-controllare-il-numero-degli-utenti.html#comment-form' title='35 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/1938014685666308967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/1938014685666308967'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2009/09/come-controllare-il-numero-degli-utenti.html' title='Come controllare il numero degli utenti realmente online (anche se escono chiudendo il Browser)?'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>35</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-8824376256103955426</id><published>2009-09-10T03:28:00.001-07:00</published><updated>2009-11-30T08:01:54.113-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Script Asp'/><category scheme='http://www.blogger.com/atom/ns#' term='mappa link asp'/><category scheme='http://www.blogger.com/atom/ns#' term='una mappa con asp'/><category scheme='http://www.blogger.com/atom/ns#' term='mappa sito asp'/><title type='text'>Una mappa in ASP per il tuo sito</title><content type='html'>Vi presento ora un piccolo script che ho realizzato per avere la classica mappa che ti dice in che posizione sei sul sito tipo:&lt;br /&gt;&lt;br /&gt; Home &gt;&gt; Prodotti &gt;&gt; Sony &gt;&gt; Playstation 3&lt;br /&gt;&lt;br /&gt;All'interno del file dovrete solo impostare quale pagina è impostata sul vostro server come home page.&lt;br /&gt;&lt;br /&gt;Per quanto riguarda invece le home di ogni directory, in genere quando si accede ad una cartella, senza mettere direttamente il nome della pagina finale, il server punta ad una pagina impostata di default...che potrebbe appunto essere default.htm...o index.htm...o index.asp...o index.php...ecc..assicuratevi che ogni directory abbia la propria home page...altrimenti , cliccando il link alla directory, vi potrebbe dare il messaggio tipico "directory listing denied"&lt;br /&gt;&lt;br /&gt;Anche quando un utente accede al nostro sito inserendo solo l'indirizzo, comunque il server punta alla nostra home page.&lt;br /&gt;&lt;br /&gt;Lo script in sostanza lavora sulla url visualizzata in quel momento, e non come in genere questi script fanno, direttamente sul server controllando i file all'interno delle cartelle.&lt;br /&gt;&lt;br /&gt;Con una serie di split, si rileva così la root principale, tutte le eventuali directory, e la pagina finale nella quale ci si trova.&lt;br /&gt;Lo script sostituisce il simbolo "-" con lo spazio, perché io ho l'abitudine di mettere al posto degli spazi il carattere "-" che viene interpretato dai motori come uno spazio.&lt;br /&gt;&lt;br /&gt;Io in genere sostituisco anche l'anchor text "home" che mi riporta alla home page, con una keyword più appropriata: potete vedere l'esempio che gira su questo sito:&lt;br /&gt;&lt;a href="http://www.my-vshop.com" target="_blank" title="Software ecommerce per creare negozi di vendita online"&gt;Software ecommerce&lt;/a&gt;&lt;br /&gt;..e sui siti creati con quel software.&lt;br /&gt;&lt;br /&gt;Lo script è all'interno di un div che potrete includere ovunque sul vostro sito(in pagine ovviamente .asp)&lt;br /&gt;&lt;br /&gt;Scaricate lo Zip e provate: &lt;a href="http://www.milanositi.it/public/milanositi-mappa.rar" target="_blank" title="Mappa del sito in ASP"&gt;milanositi: Mappa del sito in ASP&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-8824376256103955426?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/8824376256103955426/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2009/09/una-mappa-in-asp-per-il-tuo-sito.html#comment-form' title='8 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/8824376256103955426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/8824376256103955426'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2009/09/una-mappa-in-asp-per-il-tuo-sito.html' title='Una mappa in ASP per il tuo sito'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-2734055876353603740</id><published>2009-09-01T14:36:00.001-07:00</published><updated>2009-12-03T01:18:11.003-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Script Asp'/><category scheme='http://www.blogger.com/atom/ns#' term='server.execute'/><category scheme='http://www.blogger.com/atom/ns#' term='include virtual'/><category scheme='http://www.blogger.com/atom/ns#' term='include file'/><title type='text'>Include dinamici con ASP</title><content type='html'>Spesso ci accade di dover includere nelle nostre pagine sezioni della pagina che si ripetono, per creare nel sito una sorta di omogeneicità.&lt;br /&gt;Ad esempio, una struttura abbastanza comune potrebbe essere:&lt;br /&gt;&lt;br /&gt;&amp;lt;div id="testa"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="menu"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="corpo"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div id="piede"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;ed all'interno di ogni div il contenuto viene incollato con un include.&lt;br /&gt;Esistono due tipi di include: include file ed include virtual.&lt;br /&gt;I due comandi servono esattamente allo stesso scopo, solo che l'include file ha il limite di poter includere solo file che risiedono nella sua stessa directory (a meno chenon abbiate abilitato i "parent path" sul vostro server, allora potrete riferirvi a file in altre directory usando "../" al posto del nome della cartella)&lt;br /&gt;Se infatti provate ad inserire uno slash(/) prima del nome del file vi restituirà errore.&lt;br /&gt;&lt;br /&gt;L'include virtual invece è molto più pratico, permettendo di inserire i precorsi assoluti  (che io preferisco a quelli relativi), e di conseguenza poter utilizzare l'include in qualunque pagina del sito senza preoccuparsi di cambiargli il percorso.&lt;br /&gt;&lt;br /&gt;La sintassi dell'include file e virtual è la seguente:&lt;br /&gt;&lt;br /&gt;&amp;lt;!--#include file="tuofile.htm"--&amp;gt;&lt;br /&gt;&amp;lt;!--#include virtual="/tuofile.htm"--&amp;gt;&lt;br /&gt;&lt;br /&gt;Esiste però a volte la necessita di includere dinamicamente i file...cioè in base a certi fattori includere un file piuttosto che un altro.&lt;br /&gt;Nella sintassi dell'include non si possono inserire variabili in modo da cambiare ad esempio dinamicamente il nome della pagina collegata.&lt;br /&gt;&lt;br /&gt;Una soluzione è l'uso del comando server.execute.&lt;br /&gt;La sintassi è la solita dell'ASP, ed al suo interno potro inserire le mie variabili:&lt;br /&gt;&lt;br /&gt;&amp;lt;%server.execute "tuofile.htm"%&amp;gt;&lt;br /&gt;&lt;br /&gt;Posso ovviamente inserire la variabile con la solita sintassi:&lt;br /&gt;&lt;br /&gt;&amp;lt;%server.execute ""&amp;amp;nomefiledinamico&amp;amp;".htm"%&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-2734055876353603740?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/2734055876353603740/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2009/09/include-dinamici-con-asp.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/2734055876353603740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/2734055876353603740'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2009/09/include-dinamici-con-asp.html' title='Include dinamici con ASP'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-984302827495642623</id><published>2009-09-01T00:50:00.000-07:00</published><updated>2010-07-14T02:36:26.625-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Script Asp'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Creare un file XML con Asp</title><content type='html'>Uno dei linguaggi più interessanti per la sincronizzazione di dati da diverse fonti, e ad esempio, usato anche per la sincronizzazione di dati da locale a remoto, è l'XML.&lt;br /&gt;&lt;br /&gt;La prima riga fondamentale di un file XML, indica la versione e la codifica del file e sarà:&lt;br /&gt;&lt;br /&gt;"&amp;lt;?xml version=""1.0"" encoding=""UTF-8""?&amp;gt;"&lt;br /&gt;&lt;br /&gt;Poi inizia l'XML.&lt;br /&gt;&lt;br /&gt;L'XML è molto simile all'HTML, è infatto strutturato in "tag". Tutti i tag dell'XML vanno però chiusi.&lt;br /&gt;L'XML ha un tag principale, detto anche nodo principale, che conterrà al suo interno tutti i nodi figli.&lt;br /&gt;&lt;br /&gt;Esempio:&lt;br /&gt;&lt;br /&gt;&amp;lt;nodoprincipale&amp;gt;&lt;br /&gt;&amp;lt;nodo&amp;gt;Contenuto 1&amp;lt;/nodo&amp;gt;&lt;br /&gt;&amp;lt;nodo&amp;gt;Contenuto 2&amp;lt;/nodo&amp;gt;&lt;br /&gt;&amp;lt;nodo&amp;gt;Contenuto 3&amp;lt;/nodo&amp;gt;&lt;br /&gt;&amp;lt;/nodoprincipale&amp;gt;&lt;br /&gt;&lt;br /&gt;Vediamo come creare un file sul nostro server, con estensione xml:&lt;br /&gt;per la creazione di questo file useremo un oggetto "FileSystemObject"&lt;br /&gt;&lt;br /&gt;&amp;lt;%&lt;br /&gt;Dim OggFile, origine, OggTextStream&lt;br /&gt;origine=server.Mappath("/public/file.xml")&lt;br /&gt;Set fso = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;fso.CreateTextFile (origine)&lt;br /&gt;Set OggFile = fso.GetFile (origine)&lt;br /&gt;Set OggTextStream = OggFile.OpenAsTextStream(2)&lt;br /&gt;OggTextStream.WriteLine "&amp;lt;?xml version=""1.0"" encoding=""UTF-8""?&amp;gt;"&lt;br /&gt;OggTextStream.WriteLine "&amp;lt;fotos&amp;gt;"&lt;br /&gt;OggTextStream.WriteLine "&amp;lt;foto photo=''&amp;gt;Immagine 1&amp;lt;/foto&amp;gt;"&lt;br /&gt;OggTextStream.WriteLine "&amp;lt;foto photo=''&amp;gt;Immagine 2&amp;lt;/foto&amp;gt;"&lt;br /&gt;OggTextStream.WriteLine "&amp;lt;foto photo=''&amp;gt;Immagine 3&amp;lt;/foto&amp;gt;"&lt;br /&gt;OggTextStream.WriteLine "&amp;lt;foto photo=''&amp;gt;Immagine 4&amp;lt;/foto&amp;gt;"&lt;br /&gt;OggTextStream.WriteLine "&amp;lt;/fotos&amp;gt;"&lt;br /&gt;OggTextStream.close&lt;br /&gt;response.write "Scrittura eseguita correttamente. &amp;lt;a href="/public/file.xml"&amp;gt;Visualizza&amp;lt;/a&amp;gt;"&lt;br /&gt;%&amp;gt;&lt;br /&gt;&lt;br /&gt;Il link proposto alla fine della creazione, aprirà il file creato.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-984302827495642623?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/984302827495642623/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2009/09/creare-una-sitemap-dinamica-xml-con-asp.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/984302827495642623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/984302827495642623'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2009/09/creare-una-sitemap-dinamica-xml-con-asp.html' title='Creare un file XML con Asp'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-2982773842623746798</id><published>2009-09-01T00:42:00.004-07:00</published><updated>2010-02-23T15:22:01.531-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Script Asp + Ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='popolare dinamicamente select ajax asp'/><title type='text'>Popolare dinamicamente select asp ajax</title><content type='html'>&lt;p&gt;Una delle più efficaci applicazioni di Ajax, è il popolare le select di una form html, senza dover ricaricare la pagina. Soprattutto quando esistono diverse opzioni per ogni valore nella prima select, risulta molto pratico questo sistema, rispetto ai tipici sistemi con Javascript, che pur non ricaricando la pagina, dovevano avere già incluso nel codice della pagina, tutti gli elementi di ogni possibile scelta.&lt;/p&gt;&lt;p&gt;L'altro sistema è quello di inviare al server il valore della select scelta, ed estrarre lato server i corrispondenti valori dal database, per poi ricaricare la pagina ed elencarli. Anche questa operazione a volte risulta scomoda, soprattutto in moduli che hanno diversi campi, con diversi valori che vanno riportati ogni volta che si ricarica.&lt;/p&gt;&lt;p&gt;La soluzione che offre Ajax, sfruttando qualunque linguaggio lato server, è sicuramente la più pratica.&lt;/p&gt;&lt;p&gt;Sostanzialmente il concetto è: quando scelgo il primo valore nella select, invio una richiesta al server per ottenere l'elenco dei valori appartenenti al gruppo scelto, ed inserisco il nuovo contenuto nella pagina.&lt;/p&gt;&lt;p&gt;In questo esempio vedremo come popolare le tipiche select Regione &gt;&gt; Provincia &gt;&gt; Comune, considerando di avere tutti i valori in relazione tra loro in un database:&lt;/p&gt;&lt;p&gt;Tabella regioni:&lt;/p&gt;&lt;p&gt;id_regione - regione&lt;/p&gt;&lt;p&gt;Tabella provincie:&lt;/p&gt;&lt;p&gt;id_provincia - provincia - id_regione&lt;/p&gt;&lt;p&gt;Tabella comuni:&lt;/p&gt;&lt;p&gt;id_comune - comune - id_provincia&lt;/p&gt;&lt;p&gt;Inizialmente avremo la nostra select(che potremmo creare dinamicamente con il nostro linguaggio lato server, oppure creando manualmente le 20 option che avranno come valore l'id della regione e come testo il nome della regione) che conterrà le 20 Regioni italiane. Al tag "select", che avrà come nome "id_regione", abbinerò il codice javascript che all'evento "onchange" della select, invierà l'id della Regione al mio script che risiede in una normalissima pagina. La pagina chiamata nello zip estrai-province.asp, riceverà l'id della regione ed estrarrà tutte le provincie appartenenti a quella regione. Il contenuto di questa pagina, che sarà in pratica la select che contiene tutte le provincie, verrà incollato nella mia pagina, nella posizione opportuna, con la funzione Javascript chiamata innerHTML.&lt;/p&gt;&lt;p&gt;La select che verrà incollata, che si chiamerà id_provincia, avrà a sua volta del codice Javascript che all'evento "onchange", invierà l'id della provincia scelta alla pagina successiva chiamata estrai-comuni.asp, che provvederà a filtrare i comuni della provincia inviata, e genererà la select con tutto l'elenco dei comuni, ed i relativi id.&lt;/p&gt;&lt;p&gt;A questo punto, con innerHTML, incollerò anche questa select nella mia form. Potrei andare avanti così all'infinito.&lt;/p&gt;&lt;p&gt;Ecco il risultato:&lt;br /&gt;&lt;iframe style="WIDTH: 100%" src="http://www.milanositi.it/script/asp-ajax/popolare-dinamicamente-select-asp-ajax-regioni-province-comuni/tabella-rpc.asp" frameborder="0"&gt;&lt;br /&gt;Il browser in uso non supporta frame non ancorati oppure è configurato in modo che i frame non ancorati non siano visualizzati.&lt;br /&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p&gt;Qui invece trovate lo zip, che contiene anche il database Access aggiornato con le nuove province della Sardegna, di Monza, Fermo e Barletta:&lt;a href="http://www.milanositi.it/public/milanositi-popolare-dinamicamente-select-asp-ajax-regioni-province-comuni.rar" target="Popolare dinamicamente select con ajax e javascript"&gt;Popolare dinamicamente select ajax javascript&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Ricordate di spostare il database nella directory mdb-database (o se lo mettete in altre directory, aggiornate il percorso...e assicuratevi che la directory abbia permessi di esecuzione)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-2982773842623746798?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/2982773842623746798/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2009/09/come-utilizzare-ajax-e-asp-per-popolare.html#comment-form' title='29 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/2982773842623746798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/2982773842623746798'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2009/09/come-utilizzare-ajax-e-asp-per-popolare.html' title='Popolare dinamicamente select asp ajax'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2440873366719031474.post-599924851273242557</id><published>2009-09-01T00:42:00.003-07:00</published><updated>2009-11-16T05:23:36.760-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='upload persits'/><category scheme='http://www.blogger.com/atom/ns#' term='upload multiplo'/><category scheme='http://www.blogger.com/atom/ns#' term='upload asp aruba'/><category scheme='http://www.blogger.com/atom/ns#' term='Libreria Persits'/><category scheme='http://www.blogger.com/atom/ns#' term='upload file superiori 4 mb aruba'/><category scheme='http://www.blogger.com/atom/ns#' term='Upload Aruba'/><category scheme='http://www.blogger.com/atom/ns#' term='caricare file grandi dimensioni aruba'/><title type='text'>Come fare l'upload su Aruba di file superiori ai 4 MB?</title><content type='html'>Questa domanda ha popolato migliaia di thread nei Forum per Webmaster più famosi in rete...e la risposta è una...CERTO CHE SI PUO'!!!&lt;br /&gt;&lt;br /&gt;Cercando bene nel "vademecum" di Aruba, si può trovare un fantastico zip da scaricare che contiene un sacco di cosette utili per chi sviluppa siti hostati su Aruba, programmando in ASP o ASP.net.&lt;br /&gt;&lt;br /&gt;Questi script sono stati creati da &lt;a href="http://www.persits.com/" target="_blank"&gt;Persits&lt;/a&gt; e sono semplicissimi da utilizzare e molto efficaci.&lt;br /&gt;Nel file che trovate su Aruba (&lt;a href="http://vademecum.aruba.it/start/persits/" target="_blank"&gt;a questo indirizzo&lt;/a&gt;) , trovate quattro componenti, chiamati:&lt;br /&gt;&lt;br /&gt;- AspEmail , componente che si affianca a Cdosys e consente l'invio di mail con varie opzioni. Usato in congiunzione con AspUpload rende molto facile l'invio di allegati via mail tramite pagina web&lt;br /&gt;- AspUpload, componente per facilitare l'invio di files tramite form. Molte le opzioni, possibilita' di salvare il file su disco o su database.&lt;br /&gt;- AspJpeg, componente per la manipolazione "al volo" delle immagini : dimensionare, ruotare, crop, risoluzione, salvataggio in database.&lt;br /&gt;- AspPdf, componente per la creazione "al volo" di files PDF, la sorgente puo' essere un file di testo, un'immagine, una pagina web, un form, ecc. ecc&lt;br /&gt;&lt;br /&gt;All'interno trovate un sacco di esempi.&lt;br /&gt;&lt;br /&gt;In questo post stiamo parlando però di upload di file di qualunque dimensione, quindi vi descrivo come farlo:&lt;br /&gt;&lt;br /&gt;Per prima cosa inserite nella cartella "CGI-BIN" del vostro spazio Aruba, la .dll chiamata "ASPUPLOADLib.dll", che trovate nello zip.&lt;br /&gt;&lt;br /&gt;Poi avrete una vostra form con la quale caricare il file tipo:&lt;br /&gt;&lt;br /&gt;&amp;lt;form enctype="multipart/form-data" method="post" action="Upload.asp"&amp;gt;&lt;br /&gt;&amp;lt;input type="file" name="file"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;input value="Carica il file" type="submit"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;la pagina upload.asp, sostanzialmente dovrà contenere 2 sole righe:&lt;br /&gt;&lt;br /&gt;Set Upload = Server.CreateObject("Persits.Upload")&lt;br /&gt;Upload.Save(Server.MapPath("/public")) 'qui impostate il percorso dove finirà il file&lt;br /&gt;response.write "File caricato con successo!"&lt;br /&gt;&lt;br /&gt;e con queste sole due righe, voi potrete caricare sul vostro server file di qualunque dimensione!!&lt;br /&gt;&lt;br /&gt;Se poi avete bisogno di ricavare il nome del file, magari per inserirlo nel vostro database, aggiungete queste righe:&lt;br /&gt;&lt;br /&gt;Set File = Upload.Files("file") ' qui metterete al posto di "file", il nome della input che avete nella vostra form dove caricate il file&lt;br /&gt;&lt;br /&gt;If Not File Is Nothing Then&lt;br /&gt;filename=File.FileName&lt;br /&gt;end if&lt;br /&gt;&lt;br /&gt;ed ecco che la variabile "filename" conterrà il nome del file completo di estensione.&lt;br /&gt;&lt;br /&gt;Infine, se avete la necessità di rinominare il file, potete mettere queste righe:&lt;br /&gt;&lt;br /&gt;Set File = Upload.Files("file") ' qui metterete al posto di "file", il nome della input che avete nella vostra form dove caricate il file&lt;br /&gt;&lt;br /&gt;If Not File Is Nothing Then&lt;br /&gt;filename=File.FileName&lt;br /&gt;&lt;br /&gt;nuovo_filename="testo_"&amp;amp;filename&amp;amp;""&lt;br /&gt;Dim fsoMyFile&lt;br /&gt;Set fsoMyFile = Server.CreateObject("Scripting.FileSystemObject")&lt;br /&gt;fsoMyFile.MoveFile (Server.MapPath("/public/"&amp;amp;filename&amp;amp;"")), (Server.MapPath("/public/"&amp;amp;nuovo_filename&amp;amp;""))&lt;br /&gt;Set fsoMyFile = nothing&lt;br /&gt;&lt;br /&gt;end if&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ed il gioco è fatto!!&lt;br /&gt;&lt;br /&gt;Spero possa esservi utile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2440873366719031474-599924851273242557?l=script-asp.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://script-asp.blogspot.com/feeds/599924851273242557/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://script-asp.blogspot.com/2009/09/come-fare-lupload-su-aruba-di-file.html#comment-form' title='54 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/599924851273242557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2440873366719031474/posts/default/599924851273242557'/><link rel='alternate' type='text/html' href='http://script-asp.blogspot.com/2009/09/come-fare-lupload-su-aruba-di-file.html' title='Come fare l&apos;upload su Aruba di file superiori ai 4 MB?'/><author><name>Alessio</name><uri>http://www.blogger.com/profile/13415273540910277181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_e9YGUPz95sw/TKsmcKXg0hI/AAAAAAAAAAc/7KKY7rddkxw/S220/milanositi-quadrato.jpg'/></author><thr:total>54</thr:total></entry></feed>
