try { dojo.require("dojo.io.*"); } catch (e) { alert('You need the Dojo framework to enable the AjaxRequest class.'); } function AjaxRequest(url) { this.url = url; this.form = document.createElement('form'); this.form.setAttribute('action', this.url); this.form.setAttribute('method', 'post'); } AjaxRequest.prototype.setSingle = function(name, value) { // Use input text element var inputElement = document.createElement('input'); inputElement.setAttribute('type', 'text'); inputElement.setAttribute('name', name); inputElement.setAttribute('value', value); this.form.appendChild(inputElement); } AjaxRequest.prototype.setMultiple = function(name, values) { var optionElement; // use select multiple element var selectElement = document.createElement('select'); selectElement.setAttribute('multiple', 'multiple'); selectElement.setAttribute('name', name+'[]'); try { if (values.length > 0) { for (var i = 0; i < values.length; i++) { if (values[i] == null || values[i] == 'undefined') { continue; } // create option element and attach it to the selectElement optionElement = document.createElement('option'); optionElement.setAttribute('value', values[i]); optionElement.setAttribute('selected', 'selected'); selectElement.appendChild(optionElement); } } } catch (e) {} this.form.appendChild(selectElement); } AjaxRequest.prototype.request = function(callbackFunctionName) { // Attach the form var elementsTmp = document.getElementsByTagName('body'); var bodyElement = elementsTmp[0]; // Create invisible div to hide the form var divElement = document.createElement('div'); divElement.style.display = 'none'; divElement.appendChild(this.form); bodyElement.appendChild(divElement); dojo.io.bind ({ url: this.url, load: callbackFunctionName, mimetype: "text/html", formNode: this.form }); }