1 var YXHRPost = function(url){ 2 var xhrscope=this; 3 this.laststring=""; 4 var XUnit=function(formData,type,onload,onprogress,dataz){ 5 var xuscope=this; 6 this.loaded = false; 7 var xhr = new XMLHttpRequest(); 8 xhr.open('POST',url); 9 xhr.onload = function() { 10 xuscope.loaded = true; 11 xhrscope.laststring = this.responseText; 12 var result = this.responseText; 13 if(result.indexOf("xdebug-error")>0){ 14 var strerr = "PHP Error :<br/><br/>"+result; 15 document.body.innerHTML+=strerr; 16 }else if(type=="js"){ 17 try{ 18 this.result=result; 19 eval("this.result = "+this.result+";"); 20 result=this.result; 21 }catch(e){ 22 var strerr = "reponse php->js:\n\n"+result; 23 alert(strerr); 24 }; 25 } 26 if(typeof(onload)=="function")onload(result,dataz); 27 }; 28 if("upload" in new XMLHttpRequest){ 29 xhr.upload.onprogress = function(event) { 30 if (event.lengthComputable) { 31 var perc = event.loaded / event.total; 32 if(typeof(onprogress)=="function")onprogress(perc,dataz); 33 } 34 }; 35 } 36 xhr.send(formData); 37 }; 38 this.upload=function(file,datas,onload,onprogress,dataz){ 39 if(!file||!file.join) file=[file]; 40 var formData = new FormData(); 41 formData.append("file",file); 42 for(var i in file)if(file[i] instanceof File)formData.append("file",file[i]); 43 else throw("YXHRPost.upload Error:\nfile["+i+"]="+file[i]+"\nmust be instanceof File."); 44 for(var i in datas)formData.append(""+i,""+datas[i]); 45 this.sendform(formData,"file",onload,onprogress,dataz); 46 }; 47 this.sendform=function(formData,type,onload,onprogress,dataz){ 48 new XUnit(formData,type,onload,onprogress,dataz); 49 }; 50 this.req=function(datas,type,onload,onprogress,dataz){ 51 var formData = new FormData(); 52 for(var i in datas)formData.append(""+i,""+datas[i]); 53 this.sendform(formData,type,onload,onprogress,dataz); 54 }; 55 56 }; 57