- Inviare richieste e form con AJAX e
MooTools -
|
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download |Chiedi sul FORUM | Glossario | cognizioni basiche di HTML, JavaScript e del funzionamento di MooTools | ||
L'oggetto Request di MooTools e il metodo form.send() | |||
USARE AJAX CON MOOTOOLS L'oggetto Request di MooTools e le sue proprietà. Come abbiamo visto in un precedente articolo fare una richiesta con AJAX non comporta grandi difficoltà, tuttavia con la classe Request di MooTools il tutto risulta ancora più semplice ed efficace: var ajaxRequest = new Request({ url: $("urlTextBox").value, method: "post", data: "parametro1=ciao¶metro2=salve", async: true, noCache: true, headers: { "Warning": "just an header" }, onProgress: function(info, xhr) { statusDiv.innerHTML = parseInt(info.loaded / info.total * 100, 10) + "%"; }, onSuccess: function(responseText, responseXML){ statusDiv.innerHTML = "Richiesta terminata con successo: " + responseText; }, onFailure: function(xhr) { statusDiv.innerHTML = "Richiesta fallita: " + xhr.status + " - " + xhr.statusText; } }); ajaxRequest.send(); Questo codice permette di sfruttare tutte le più interessanti funzionalità dell'oggetto Request. Per prima cosa bisogna instanziarlo passandogli tutte le impostazioni, quindi è sufficiente invocare il metodo send per inviare la richiesta. Ma vediamo i parametri uno ad uno:
Intercettare l'invio di un form, bloccarlo e inviarlo tramite AJAX. Un'altra interessante funzionalità di MooTools è la capacità di inviare FORM classici HTML tramite AJAX. Dato il seguente FORM HTML: <form action="destinazione.htm" id="ajaxForm"> <input type="text" name="campo1" value="valore1"> <input type="hidden" name="campo2" value="valore2"> <select name="campo3"> <option value="valore3a" selected>Valore 3A</option> <option value="valore3b">Valore 3B</option> </select> <input type="submit" value="Invia"> </form> Con il seguente codice è possibile intercettare l'evento di invio del form, fermarlo e quindi inoltrarlo via AJAX: window.addEvent("domready", function() { $('ajaxForm').addEvent('submit', function(event) { event.stop(); this.set("send", { onSuccess: function(responseText, responseXML) { alert(responseText); } }); this.send(); }); }); Come detto, event.stop() permette di interrompere
l'elaborazione dell'evento, poi con impostando sul FORM
la proprietà "send", possiamo specificare tutte le opzioni viste
precedentemente e infine con this.send() il form viene
inviato. Semplice ed efficace.
|
|||
<< INDIETRO | by VeNoM00 |