В общем пока такие букоффки:
function getXmlHttp() {
var xhr;
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xhr = false;
}
}
if (!xhr && typeof XMLHttpRequest!='undefined') {
xhr = new XMLHttpRequest();
}
return xhr;
}
function formsend(setnamepost,setstat) {
var xhr = getXmlHttp();
xhr.open('post', 'processor.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Отправляем тип содержимого
xhr.send('setname=' + encodeURIComponent(setnamepost) + '&setstat=' + encodeURIComponent(setstat));
xhr.onreadystatechange = function() { // Ждём ответа от сервера
if (xhr.readyState == 4) { // Ответ пришёл
if(xhr.status == 200) { // Сервер вернул код 200 (что хорошо)
if (xhr.responseText) document.getElementById("return").innerHTML = 'fine';
else document.getElementsByClassName("return").innerHTML = 'error';
alert(setstat + ', ' + setnamepost);
}
}
};
}
<form action="javascript:void(0);" method="post" name="sets" onsubmit="formsend('registration','off'); return false;">
<input name="setname" type="text" value="registration">
<input name="setstat" type="hidden" value="off">
<button name="set_go" type="submit" style="background-color:green; color:#fff;">on</button>
</form>
Если в обработчик отправлять форму без использования ajax, то работает прекрасно, иначе в базе данные не меняются, консоль пуста, alert выводит и setstat, и setnamepost. А значит код 200 вернулся. Где эта ошибка хрен знает...