Poniżej znajduje się skrypt który ma za zadanie przesłać dane z formularza "w tle"-bez przeładowywania strony (metodą POST) do skryptu PHP.
Wszystko jest ok jednak skrypt powoduje zamianę polskich znaków na nieczytelny ciąg np.: "śćżźęął" zamienia na "%u015B%u0107%u017C%u017A%u0119%u0105%u0142"
function xmlhttpPost(strURL, formname, responsediv, responsemsg) { var xmlHttpReq = false; var self = this; if(window.XMLHttpRequest) { self.xmlHttpReq = new XMLHttpRequest(); } else if(window.ActiveXObject) { self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); } self.xmlHttpReq.open('POST', strURL, true); self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); self.xmlHttpReq.onreadystatechange = function() { if(self.xmlHttpReq.readyState == 4) { updatepage(self.xmlHttpReq.responseText, responsediv); } else { updatepage(responsemsg, responsediv); } } self.xmlHttpReq.send(getquerystring(formname)); } function getquerystring(formname) { var form = document.forms[formname]; var qstr = ""; function GetElemValue(name, value) { qstr += (qstr.length > 0 ? "&" : "") + escape(name).replace(/\+/g, "%2B") + "=" + escape( value ? value : "").replace(/\+/g, "%2B"); } var elemArray = form.elements; for(var i = 0; i < elemArray.length; i++) { var element = elemArray[i]; var elemType = element.type.toUpperCase(); var elemName = element.name; if(elemName) { if(elemType == "TEXT" || elemType == "TEXTAREA" || elemType == "PASSWORD" || elemType == "BUTTON" || elemType == "RESET" || elemType == "SUBMIT" || elemType == "FILE" || elemType == "IMAGE" || elemType == "HIDDEN") GetElemValue(elemName, element.value); else if(elemType == "CHECKBOX" && element.checked) GetElemValue(elemName, element.value ? element.value : "On"); else if(elemType == "RADIO" && element.checked) GetElemValue(elemName, element.value); else if(elemType.indexOf("SELECT") != -1) for(var j = 0; j < element.options.length; j++) { var option = element.options[j]; if(option.selected) GetElemValue(elemName, option.value ? option.value : option.text); } } } return qstr; } function updatepage(str, responsediv) { document.getElementById(responsediv).innerHTML = str; }