// JavaScript Document //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ //module.exports= function serialize (mixedValue) { // discuss at: https://locutus.io/php/serialize/ // original by: Arpad Ray (mailto:arpad@php.net) // improved by: Dino // improved by: Le Torbi (https://www.letorbi.de/) // improved by: Kevin van Zonneveld (https://kvz.io/) // bugfixed by: Andrej Pavlovic // bugfixed by: Garagoth // bugfixed by: Russell Walker (https://www.nbill.co.uk/) // bugfixed by: Jamie Beck (https://www.terabit.ca/) // bugfixed by: Kevin van Zonneveld (https://kvz.io/) // bugfixed by: Ben (https://benblume.co.uk/) // bugfixed by: Codestar (https://codestarlive.com/) // bugfixed by: idjem (https://github.com/idjem) // input by: DtTvB (https://dt.in.th/2008-09-16.string-length-in-bytes.html) // input by: Martin (https://www.erlenwiese.de/) // note 1: We feel the main purpose of this function should be to ease // note 1: the transport of data between php & js // note 1: Aiming for PHP-compatibility, we have to translate objects to arrays // example 1: serialize(['Kevin', 'van', 'Zonneveld']) // returns 1: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}' // example 2: serialize({firstName: 'Kevin', midName: 'van'}) // returns 2: 'a:2:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";}' // example 3: serialize( {'ü': 'ü', '四': '四', '': ''}) // returns 3: 'a:3:{s:2:"ü";s:2:"ü";s:3:"四";s:3:"四";s:4:"";s:4:"";}' let val, key, okey; let ktype=''; let vals=''; let count=0; const _utf8Size=function (str) { return ~-encodeURI(str).split(/%..|./).length; } const _getType=function (inp) { let match; let key; let cons; let types; let type=typeof inp; if (type === 'object' && !inp) { return 'null'; } if (type === 'object') { if (!inp.constructor) { return 'object'; } cons=inp.constructor.toString(); match=cons.match(/(\w+)\(/); if (match) { cons=match[1].toLowerCase(); } types=new Array('boolean', 'number', 'string', 'array'); for (key in types) { if (cons === types[key]) { type=types[key]; break; } } } return type; } const type=_getType(mixedValue) switch (type) { case 'function': val=''; break; case 'boolean': val='b:' + (mixedValue ? '1' : '0'); break; case 'number': val=(Math.round(mixedValue) === mixedValue ? 'i' : 'd') + ':' + mixedValue; break; case 'string': val='s:' + _utf8Size(mixedValue) + ':"' + mixedValue + '"'; break; case 'array': case 'object': val='a'; /* if (type === 'object') { var objname=mixedValue.constructor.toString().match(/(\w+)\(\)/); if (objname === undefined) { return; } objname[1]=serialize(objname[1]); val='O' + objname[1].substring(1, objname[1].length - 1); } */ for (key in mixedValue) { if (mixedValue.hasOwnProperty(key)) { ktype=_getType(mixedValue[key]); if (ktype === 'function') { continue; } okey=(key.match(/^[0-9]+$/) ? parseInt(key, 10) : key); vals += serialize(okey) + serialize(mixedValue[key]); count++; } } val += ':' + count + ':{' + vals + '}'; break; case 'undefined': default: // Fall-through // if the JS object has a property which contains a null value, // the string cannot be unserialized by PHP val='N'; break; } if (type !== 'object' && type !== 'array') { val += ';'; } return val; }//!\jsc:end:function serialize (mixedValue) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function jsc_getformDataObj(formthis){//,iData){ formData=new FormData(formthis); ///formData.append("testData","totot"); formData.append("userSite",jsStartSite.userSite); formData.append("isDir_iC",jsStartSite.isDir_iC); formData.append("isDir_Site",jsStartSite.isDir_Site); formData.append("isLOCALHOST",jsStartSite.isLOCALHOST); formData.append("isRemoteIP",jsStartSite.isRemoteIP); formData.append("isLang",jsStartSite.isLang); formData.append("isConnected",jsStartSite.isConnected); /* // oData.isDir_Site=iData.isDir_Site; // jsonParseResponse.fileX="toto"; // oData.userSite=jsStartSite.userSite; // oData.fileX=linkAjax; const item = { description: 'First item', price: 13, photo: File }; //const formData = new FormData(); Object.entries(item).forEach(([key, value]) => { formData.append(key, value); }); */ if(0){ jsline=123;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'formData= '+formData +'\n'+'Object.keys(formData)= '+Object.keys(formData) +'\n'+'formData.fsuccess= '+formData.fsuccess+'\n'+'formData.mail= '+formData.mail +'\n'+'formData.tobor= '+formData.tobor+'\n'+'formthis= '+formthis ); } //return(formData);// si oui pas de coche //,iData //formData.append("iData",iData); formDataObj={};formData.forEach((value,key)=>(formDataObj[key]=value)); //formDataObj=Object.assign(iData,formDataObj); if(0){ jsline=126;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'formDataObj= '+formDataObj +'\n'+'formDataObj.success= '+formDataObj.success+'\n'+'formDataObj.mail= '+formDataObj.mail +'\n'+'formDataObj.pass= '+formDataObj.pass+'\n'+'formDataObj.select= '+formDataObj.select +'\n'+'formDataObj.tobor= '+formDataObj.tobor+'\n'+'formDataObj.userSite= '+formDataObj.userSite ); } return(new Array(formData,formDataObj)); ///alert('line= '+'89'+'\n'+'formDataObj= '+formDataObj+'\n'+'formDataObj.success= '+formDataObj.success); //list=formDataObj._form_;datas=formDataObj; //return(new Array(formDataObj._form_,formDataObj));//ex: formDataObj._form_=>value="logger.0,username,password" // const formData=new FormData(form); // const values=[...formData.entries()]; // const values=[...formData.entries()]; }//!\jsc:end:function jsc_getformDataObj(formthis) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function jsc_XgetjsonParseResponse(){//xdr,iData) { if(0){ jsline=145;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'xdr.responseText= '+xdr.responseText +'\n'+'iData.userSite= '+iData.userSite ); } //!\sendX //step:logger:9 traitment of xdr.responseText code=xdr.responseText; return(code);//JSON.parse(xdr.responseText);//JSON.parse(xdr.responseText); //----- if(0){ jsline=153;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'code= '+code ); } //----- convertedCode=decodeURI(code).replace(/\\"/gi,""); //c corrige la chaîne code envoyée par json_encode convertedCode=JSON.parse(convertedCode); //c transforme la chaîne convertedCode en modèle $_POST dans JS // if(iData){convertedCode=Object.assign(iData,convertedCode);} //----- if(0){ jsline=154;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'convertedCode= '+Object.keys(convertedCode) +'\n'+'iData.pass= '+iData.pass+'\n'+'convertedCode.success= '+convertedCode.success ); } //----- // convertedCode=Object.assign(iData,convertedCode); //----- if(0){ jsline=162;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'convertedCode= '+Object.keys(convertedCode) +'\n'+'convertedCode.iData= '+convertedCode.iData ); } return(convertedCode);//JSON.parse(xdr.responseText);//JSON.parse(xdr.responseText); }//!\jsc:end:X:function jsc_XgetjsonParseResponse(xdr) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function getXDomainRequest() { fct="getXDomainRequest()"; // let xdr = null; if (window.XDomainRequest) {xdr = new XDomainRequest(); }  else if (window.XMLHttpRequest) { xdr = new XMLHttpRequest(); }  else { jsline=153;jsfct_dvlptAlert('line= forum.js.php,'+jsline+"\n"+"//!\fr Votre navigateur ne gère pas l'AJAX cross-domain !"); } return xdr;         }//!\jsc:end:ajax:getXDomainRequest() //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function xxxsendDataOpenResults(formthis) {//xdr,iData) { // +'\n'+'jsonResponse.success= '+jsonParseResponse.success //!\sendX //step:logger:8 traitment of xdr.responseText let sep=''; let d0=formatTimeMMSS(new Date(),sep); //oData=jsonParseResponse=xdr.responseText;// ?? jsc_XgetjsonParseResponse();//xdr,iData); if(0){ jsline=165;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'iData= '+iData +'\n'+'xdr.responseText= '+xdr.responseText+'\n'+'jsonParseResponse.mail= '+jsonParseResponse.mail +'\n'+'jsonParseResponse.success= '+jsonParseResponse.success ); } // results=jsonParseResponse; d1=d0; while (d1-d0<3) {//inférieur à 3s d1=formatTimeMMSS(new Date(),sep); if((d1-d0)){ // JSON.parse(array) JSON.stringify(value) oData=jsonParseResponse=JSON.parse(xdr.responseText); // oData.success=(d1-d0); //----- if(1){ jsline=252;jsfct_dvlptAlert('line= forum.js.php+connection.php,'+jsline +'\n'+'oData.success= '+oData.success+'\n'+'oData= '+oData); //jsline=613;jsfct_dvlptAlert('line= forum.js.php+connection.php,'+jsline+'\n'+'oData= '+Object.keys(oData)); } //!\sendX //step:logger:11 final oData <- traitment of xdr.responseText ready //----- if(oData.success){ //idSuccessHx idSuccessHx ///idSuccessIHx=formthis.idSuccessHx; idSuccessHx=document.getElementById(formthis.idSuccessHx.name); idSuccessHx.style.padding="5"; idSuccessHx.style.margin="5"; idSuccessHx.style.border="dashed 2px green";//"dashed 1px green"; idSuccessHx.style.background="#efeeef";//"dashed 1px green"; idSuccessHx.style.fontWeight="bold"; idSuccessHx.style.fontSize="1.5vw"; idSuccessHx.style.display="inline"; jsmethodControlCommonWaiting("idSuccessHx","//!\fr réussite","green"); //----- idResponseHx=document.getElementById("idResponseHx"); idResponseHx.style.fontSize="0.8vw"; idResponseHx.innerHTML=iData.mail+", "+iData.pass+", "+" | "+oData.mail+", "+oData.pass+" | " +(iData.mail==oData.mail&&iData.pass==oData.pass); //----- idobjectConON0=document.getElementById("idobjectConON0"); //idobjectConON0.style.display="inline"; idobjectConON1=document.getElementById("idobjectConON1"); idobjectConON0.style.display=idobjectConON1.style.display="inline"; //----- idobjectConOFF=document.getElementById("idobjectConOFF"); idobjectConOFF.style.display="none"; //----- if(1){ jsline=261;jsfct_dvlptAlert('line= forum.js.php+connection.php,'+jsline+'\n'+'linkAjax fonctionne ? = '+oData.success +'\n'+'oData._form_= '+oData._form_ +'\n'+'oData.mail= '+oData.mail +'\n'+'oData.pass= '+oData.pass +'\n'+'oData.dataSerialize= '+oData.dataSerialize +'\n'+'oData.okX= '+oData.okX +'\n'+'oData.login= '+oData.login +'\n'+'oData.Connected= '+oData.Connected +'\n'+'oData.userSite= '+oData.userSite +'\n'+'oData.fluxX= '+oData.fluxX ); } if(oData.login.connecting)return(true); //!\sendX //step:logger:12 traitment of dataBase ?? return(true); } idSuccessHx.style.color="red"; // oData.isDir_Site=iData.isDir_Site; // jsonParseResponse.fileX="toto"; // oData.userSite=jsStartSite.userSite; // oData.fileX=linkAjax; // oData=jsonParseResponse; /// results=jsonParseResponse; //break; // step=1; if(1){ jsline=243;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'(d1-d0)= '+(d1-d0)+'\n'+'jsonParseResponse.mail= '+jsonParseResponse.mail); } //return(jsonParseResponse); // results=jsonParseResponse; /// return(jsonParseResponse);// oData // return(oData); break;//!\sendX //step:logger:9 traitment of xdr.responseText ready } } // step=1; ////return(oData);//:jsonParseResponse); //return(oData);//:jsonParseResponse); } //function sendDataOpen(iData,linkAjax,synchro,xdr) { function sendDataOpen(formthis){//linkAjax,synchro,xdr){ xdr.onload = function() {// avec //!\sendX //step:logger:7 send formdata+iData -> X.php -> return oData // iData.success=1; // oData= sendDataOpenResults(formthis);//xdr,iData); // return(oData); // oData.success=1; //!\sendX //step:logger:10 traitment of xdr.responseText ready if(0){ jsline=222;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'iData= '+iData +'\n'+'oData.mail= '+oData.mail+'\n'+'oData.mail= '+oData.mail ); } }//!\js.end:xdr.onload = function() { //----- //https://stackoverflow.com/questions/22783108/convert-js-object-to-form-data ///arr0=iData;iData=arr0[1]; //formadata=arrO[0]; if(0){ jsline=297;jsfct_dvlptAlert('line= forum.js.php+connection.php,'+jsline +'\n'+'formadata= '+formdata+'\n'+'iData= '+iData ); } //+'\n'+'arr0[0]= '+arr0[0]+'\n'+'arr0[1]= '+arr0[1] //----- //!\sendX //step:logger:6 send formdata+iData -> X.php -> return oData xdr.open("POST",linkAjax,synchro);// synchro=false permet d'ATTENDRE que results vers return(results); if(0){ jsline=305;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'iData= '+Object.keys(iData) +'\n'+'iData.mail= '+iData.mail ); } xdr.send(formdata);//arr0[0]); //----- //if(oData)return(oData); //if(oData.success) // return(oData); //!\sendX //step:logger:? return oData after xdr.onload }//!\jsc:end:ajax:function sendDataOpen(datas,linkAjax) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function padTo2Digits(num) { return num.toString().padStart(2, '0'); }//!\jsc:end:format:number:function padTo2Digits(num) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function formatDate(date) { return ( [ date.getFullYear(), padTo2Digits(date.getMonth() + 1), padTo2Digits(date.getDate()), ].join('-') + ' ' + [ padTo2Digits(date.getHours()), padTo2Digits(date.getMinutes()), padTo2Digits(date.getSeconds()), ].join(':') ); }//!\jsc:end:format:date:function formatDate(date) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function formatTimeMMSS(date) { return ( [ padTo2Digits(date.getHours()), padTo2Digits(date.getMinutes()), padTo2Digits(date.getSeconds()), ].join('')//.join(':') ); }//!\jsc:end:format:date:function formatTimeMMSS(date) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function yyyyxxxxsendReadyPOST(datas,linkAjax,synchro,xdr){//with success // https://byby.dev/js-format-date // https://bobbyhadz.com/blog/javascript-format-date-yyyy-mm-dd-hh-mm-ss if(!xdr)xdr = getXDomainRequest(); ///let synchro=false; let results; let sep=''; let d0=formatTimeMMSS(new Date(),sep); //let step; if(0){ jsline=283;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'datas= '+datas+'\n'+'datas._form_= '+datas._form_+'\n'+'d0= '+d0+'\n'+'xdr= '+xdr); } //----- xdr.onload = function(datas,results,step) {// avec let jsonParseResponse=jsc_XgetjsonParseResponse(xdr,datas); if(0){ jsline=289;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'datas= '+datas+'\n'+'xdr.responseText= '+convertedCode+'\n'+'jsonParseResponse= '+jsonParseResponse.success); } results=jsonParseResponse; let d1=d0; while (d1-d0<3) {//inférieur à 3s d1=formatTimeMMSS(new Date(),sep); if(1&&(d1-d0)){ // JSON.parse(array) JSON.stringify(value) jsonParseResponse.success=(d1-d0); if(1){ jsline=299;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'(d1-d0)= '+(d1-d0)+'\n'+'jsonResponse.success= '+ jsonParseResponse.success//+'\n'+'jsonStringifyResponse= '+jsonStringifyResponse ); } results=jsonParseResponse; } } step=1; }//!\js.end:xdr.onload = function() { //----- //iData=datas;//formatoData(datas,linkAjax,synchro,xdr); xdr.open("POST",linkAjax,synchro);// false permet d'attendre que results vers return(results); xdr.send(datas); //----- if(step)return(results); //----- if(0){ jsline=315;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'datas= '+datas+'\n'+'Object.valuess(datas)= '+Object.values(datas)); } xdr.open("POST",linkAjax,synchro);// synchro=false permet d'ATTENDRE que results vers return(results); xdr.send(datas);//iData); return(results);//!\obligatoire: // iData.append("datas", iData.serialize()); if(0){ datas={ success:0 ,firstName: 'Kevin' , midName: 'van' ,cni:'a:5:{i:0;s:17:"Michel Boussekeyt";i:1;s:23:"3 rue Victor Schoelcher";i:2;s:13:"59790 Ronchin";i:3;s:12:"+33781391043";i:4;s:16:"fatima@gmail.com";}' }; } if(0){ jsline=330;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'datas= '+datas+'\n'+'Object.valuess(datas)= '+Object.values(datas)); } //iData=datas;   //      xdr.open("GET", linkAjax+datas); //if(xdr.responseText!=='on'){ //x=serialize(xdr.responseText); //alert('line= '+'244'+'\n'+'x= '+x); //var_dump(x); /* a:5:{i:0;s:17:"Michel Boussekeyt";i:1;s:23:"3 rue Victor Schoelcher";i:2;s:13:"59790 Ronchin";i:3;s:12:"+33781391043";i:4;s:16:"fatima@gmail.com";} */ //document.write("Serialized the above data ; " +'
'); // //y=unserialize(x); //document.write('
'+"Unserialize the above data and go back to original array : " +'
'); //var_dump(y); // C:\atelier\sommaire+content\0\js\indexTools-THESEA.js // convertedCode=decodeURI(code).replace(/\\"/gi,""); //c corrige la chaîne code envoyée par json_encode // convertedCode=JSON.parse(convertedCode); //c transforme la chaîne convertedCode en modèle $_POST dans JS }//!\jsc:end:ajax:function sendDataPOST(datas,linkAjax) { //3$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ function yyyyyxxxxsendReadyPOST0(datas,linkAjax){//with success // https://byby.dev/js-format-date // https://bobbyhadz.com/blog/javascript-format-date-yyyy-mm-dd-hh-mm-ss    let xdr = getXDomainRequest(); let synchro=false,results; let d0=formatTimeMMSS(new Date()); let step; /* d0=[ padTo2Digits(d0.getHours()), padTo2Digits(d0.getMinutes()), padTo2Digits(d0.getSeconds()), ].join('');//.join(':'); */ jsline=372;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'d0= '+'\n'+d0+'xdr= '+'\n'+xdr);         xdr.onload = function(datas,results,step) {// avec jsline=375;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+xdr.responseText); //let jsonResponse=JSON.parse(xdr.responseText);//JSON.parse(xdr.responseText); let d1=d0; results={"success":0}; while (d1-d0<5) {//inférieur à 5s d1=formatTimeMMSS(new Date()); if(jsonResponse.success){ // results={"success":(datas.keywords==jsonResponse.keywords),"datas":jsonResponse}; results={"success":1,"datas":"toto"}; } } results={"success":1,"datas":"toto"}; step=1; } oData=formatoData(datas,linkAjax,synchro,xdr); xdr.open("POST",linkAjax,synchro);// false permet d'attendre que results vers return(results); // oData.append("datas", oData.serialize());   //      xdr.open("GET", linkAjax+datas);         xdr.send(oData); if(step)return(results); //let d1=formatTimeMMSS(date)new Date()); //                alert('jsonResponse'+'\n'+jsonResponse+'\n'+jsonResponse.keywords+'\n'+datas.keywords); //results={"success":(datas.keywords==jsonResponse.keywords),"datas":jsonResponse};       //  } /*         ///        xdr.open("GET", "http://www.foxycode.net/dev/ajax/XDomain_1.php"); //var line='?essai=ok'; datas ///        xdr.open("GET", "http://www.pooletude.com/iCloud/systemboost/scripts/sendmail.php"+line);      ///   xdr.open("GET", "http://www.pooletude.com/iCloud/systemboost/scripts/sendmail.php"+line); //datas={"oData":serialize(datas)}; datas='{'+serialize(datas)+'}'; datas={"oData":datas}; alert(datas); let oData=new FormData(); //oData.append("oData", datas);//.serialize()); //oData.append("datas0", datas);//.serialize()); // https://masteringjs.io/tutorials/fundamentals/foreach-key-value Object.keys(datas).forEach(key => { //console.log(key, obj[key]); oData.append(key, datas[key]); }); //oData.append("datas1", 1); //oData.append("datas2", 2); // oData.append("datas", oData.serialize()); xdr.open("POST",linkAjax,synchro);// synchro=false permet d'ATTENDRE que results vers return(results); // oData.append("datas", oData.serialize());   //      xdr.open("GET", linkAjax+datas);        xdr.send(oData);     //     xdr.send({"oData":serialize(oData)}); return(results); */ }//!\js.end:function sendDataPOST(datas,linkAjax) { function sendDataPOST(datas,linkAjax) {         var xdr = getXDomainRequest(); let synchro=false,results; //let results; //alert(xdr);         xdr.onload = function(datas,results,step) { jsline=454;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+xdr.responseText); let jsonResponse=JSON.parse(xdr.responseText);//JSON.parse(xdr.responseText); jsline=457;jsfct_dvlptAlert('line= forum.js.php,'+jsline+'\n'+'jsonResponse= '+jsonResponse+'\n'+jsonResponse.keywords+'\n'+datas.keywords); results={"success":(datas.keywords==jsonResponse.keywords),"datas":jsonResponse};         } oData=formatoData(datas,linkAjax,synchro,xdr); xdr.open("POST",linkAjax,synchro);// false permet d'attendre que results vers return(results); // oData.append("datas", oData.serialize());   //      xdr.open("GET", linkAjax+datas);         xdr.send(oData);    //     xdr.send({"oData":serialize(oData)}); return(results);          ///        xdr.open("GET", "http://www.foxycode.net/dev/ajax/XDomain_1.php"); //var line='?essai=ok'; datas ///        xdr.open("GET", "http://www.pooletude.com/iCloud/systemboost/scripts/sendmail.php"+line);      ///   xdr.open("GET", "http://www.pooletude.com/iCloud/systemboost/scripts/sendmail.php"+line); /* alert(datas); datas='{'+serialize(datas)+'}'; datas={"oData":datas}; alert(datas); */ let oData=new FormData(); //oData.append("oData", datas);//.serialize()); Object.keys(datas).forEach(key => { //console.log(key, obj[key]); oData.append(key, datas[key]); }); //oData.append("datas1", 1); //oData.append("datas2", 2); // oData.append("datas", oData.serialize()); xdr.open("POST",linkAjax,false);// false permet d'attendre que results vers return(results); // oData.append("datas", oData.serialize());   //      xdr.open("GET", linkAjax+datas);         xdr.send(oData);    //     xdr.send({"oData":serialize(oData)}); return(results); }//!\js.end:function sendDataPOST(datas,linkAjax) { //!\jsc:end:format:date:function formatTimeMMSS(date) {