Показать сообщение отдельно
  #6 (permalink)  
Старый 11.08.2017, 15:02
Аспирант
Отправить личное сообщение для desperate_one Посмотреть профиль Найти все сообщения от desperate_one
 
Регистрация: 21.04.2017
Сообщений: 43

В общем пока такие букоффки:

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 вернулся. Где эта ошибка хрен знает...
Ответить с цитированием