//Basic Ajax Routine- Author: Dynamic Drive (http://www.dynamicdrive.com) //Last updated: Jan 15th, 06' function createAjaxObj(){ var httprequest=false if (window.XMLHttpRequest){ // if Mozilla, Safari etc httprequest=new XMLHttpRequest() if (httprequest.overrideMimeType) httprequest.overrideMimeType('text/xml') } else if (window.ActiveXObject){ // if IE try { httprequest=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ try{ httprequest=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){} } } return httprequest } var ajaxpack=new Object() ajaxpack.basedomain = ''; ajaxpack.ajaxobj = createAjaxObj() ajaxpack.filetype = "txt" ajaxpack.addrandomnumber = 1 //Set to 1 or 0. See documentation. ajaxpack.getAjaxRequest=function(obj, url, parameters){ if (document.ResetTimeOut) document.ResetTimeOut(); ajaxpack.ajaxobj=createAjaxObj() //recreate ajax object to defeat cache problem in IE if (ajaxpack.addrandomnumber==1) //Further defeat caching problem in IE? var parameters=parameters+"&ajaxcachebust="+new Date().getTime() if (this.ajaxobj){ this.filetype='txt' this.ajaxobj.onreadystatechange=function() { if((obj!=''&&ajaxpack)&&(ajaxpack.ajaxobj.readyState == 4)&&(ajaxpack.ajaxobj.status==200 || window.location.href.indexOf("http")==-1)) { document.getElementById(obj).innerHTML=ajaxpack.ajaxobj.responseText; } } this.ajaxobj.open('GET', ajaxpack.basedomain+url+"?"+parameters, true) this.ajaxobj.send(null) } } ajaxpack.postAjaxRequest=function(obj, url, parameters){ if (document.ResetTimeOut) document.ResetTimeOut(); ajaxpack.ajaxobj=createAjaxObj() //recreate ajax object to defeat cache problem in IE if (this.ajaxobj){ this.filetype="txt" this.ajaxobj.onreadystatechange=function() { if((obj!=''&&ajaxpack)&&(ajaxpack.ajaxobj.readyState == 4)&&(ajaxpack.ajaxobj.status==200 || window.location.href.indexOf("http")==-1)) { document.getElementById(obj).innerHTML=ajaxpack.ajaxobj.responseText; } } this.ajaxobj.onreadystatechange = function() { if(obj!=''&&ajaxpack) document.getElementById(obj).innerHTML=ajaxpack.ajaxobj.responseText; }; this.ajaxobj.open('POST', ajaxpack.basedomain+url, true); this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); this.ajaxobj.setRequestHeader("Content-length", parameters.length); this.ajaxobj.setRequestHeader("Connection", "close"); this.ajaxobj.send(parameters); } } var ajaxpackA=new Object() ajaxpackA.basedomain = ''; ajaxpackA.ajaxobj = createAjaxObj() ajaxpackA.filetype = "txt" ajaxpackA.addrandomnumber = 1 //Set to 1 or 0. See documentation. ajaxpackA.getAjaxRequest=function(obj, url, parameters){ if (document.ResetTimeOut) document.ResetTimeOut(); ajaxpackA.ajaxobj=createAjaxObj() //recreate ajax object to defeat cache problem in IE if (ajaxpackA.addrandomnumber==1) //Further defeat caching problem in IE? var parameters=parameters+"&ajaxcachebust="+new Date().getTime() if (this.ajaxobj){ this.filetype='txt' this.ajaxobj.onreadystatechange=function() { if((obj!=''&&ajaxpackA)&&(ajaxpackA.ajaxobj.readyState == 4)&&(ajaxpackA.ajaxobj.status==200 || window.location.href.indexOf("http")==-1)) { document.getElementById(obj).innerHTML=ajaxpackA.ajaxobj.responseText; } } this.ajaxobj.open('GET', ajaxpackA.basedomain+url+"?"+parameters, true) this.ajaxobj.send(null) } } ajaxpackA.postAjaxRequest=function(obj, url, parameters){ if (document.ResetTimeOut) document.ResetTimeOut(); ajaxpackA.ajaxobj=createAjaxObj() //recreate ajax object to defeat cache problem in IE if (this.ajaxobj){ this.filetype="txt" this.ajaxobj.onreadystatechange=function() { if((obj!=''&&ajaxpackA)&&(ajaxpackA.ajaxobj.readyState == 4)&&(ajaxpackA.ajaxobj.status==200 || window.location.href.indexOf("http")==-1)) { document.getElementById(obj).innerHTML=ajaxpackA.ajaxobj.responseText; } } this.ajaxobj.onreadystatechange = function() { if(obj!=''&&ajaxpackA) document.getElementById(obj).innerHTML=ajaxpackA.ajaxobj.responseText; }; this.ajaxobj.open('POST', ajaxpackA.basedomain+url, true); this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); this.ajaxobj.setRequestHeader("Content-length", parameters.length); this.ajaxobj.setRequestHeader("Connection", "close"); this.ajaxobj.send(parameters); } } //ACCESSIBLE VARIABLES (for use within your callback functions): //1) ajaxpack.ajaxobj //points to the current ajax object //2) ajaxpack.filetype //The expected file type of the external file ("txt" or "xml") //3) ajaxpack.basedomain //The root domain executing this ajax script, taking into account the possible "www" prefix. //4) ajaxpack.addrandomnumber //Set to 0 or 1. When set to 1, a random number will be added to the end of the query string of GET requests to bust file caching of the external file in IE. See docs for more info. //ACCESSIBLE FUNCTIONS: //1) ajaxpack.getAjaxRequest(url, parameters, callbackfunc, filetype) //2) ajaxpack.postAjaxRequest(url, parameters, callbackfunc, filetype) ///////////END OF ROUTINE HERE//////////////////////// //////EXAMPLE USAGE //////////////////////////////////////////// //Define call back function to process returned data function processGetPost(obj){ var myajax=ajaxpack.ajaxobj document.getElementById(obj).innerHTML=myajax.responseText; } /* Comment begins here /////1) GET Example- alert contents of any file (regular text or xml file): ajaxpack.getAjaxRequest("example.php", "", processGetPost, "txt") ajaxpack.getAjaxRequest("example.php", "name=George&age=27", processGetPost, "txt") ajaxpack.getAjaxRequest("examplexml.php", "name=George&age=27", processGetPost, "xml") ajaxpack.getAjaxRequest(ajaxpack.basedomain+"/mydir/mylist.txt", "", processGetPost, "txt") /////2) Post Example- Post some data to a PHP script for processing, then alert posted data: //Define function to construct the desired parameters and their values to post via Ajax function getPostParameters(){ var namevalue=document.getElementById("namediv").innerHTML //get name value from a DIV var agevalue=document.getElementById("myform").agefield.value //get age value from a form field var poststr = "name=" + encodeURI(namevalue) + "&age=" + encodeURI(agevalue) return poststr } var poststr=getPostParameters() ajaxpack.postAjaxRequest("example.php", poststr, processGetPost, "txt") ajaxpack.postAjaxRequest("examplexml.php", poststr, processGetPost, "xml") Comment Ends here */