Witam
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;
}
Ten post edytował ksenonlogin 3.03.2012, 14:47:03