двойное html обновление элементов с использованием Ajax - PullRequest
0 голосов
/ 06 января 2020

У меня есть страница php с пользовательским тестом, текстовой областью и кнопкой отправки формы. Сначала кнопка отправки имеет вид disabled.

. Вот лог c: если тест пройден человеком, текстовый промежуток обновляется сообщением об успехе, которое отлично работает. Кроме того, я хотел бы также включить кнопку отправки динамически. Обе html операции обновления выполняются с использованием Ajax. Первый, с сообщением об успехе работает, второе обновление кнопки завершается неудачно, внутренний Html не обновляется. Я использую js функцию для обработки Ajax. Тест для прохождения - это простое дополнение, проверяющее val_in против sum:

function loadResult(val_in, sum) {
    var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
         document.getElementById("einstein").innerHTML = this.responseText;
        }
      };
      var url = "";
      if (val_in == sum) {
          url = "../ajax/einstein.html";
      } else {
          url = "../ajax/sum_err.html";
      }
      xhttp.open("POST", url, true);
      xhttp.send();

      var xhttp2 = new XMLHttpRequest();
      xhttp2.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
         document.getElementById("submitb").innerHTML = this.responseText;
        }
      };
      var url2 = "";
      if (val_in == sum) {
          url2 = "../ajax/submit_button.html";
      } else {
          return;
      }
      xhttp2.open("POST", url2, true);
      xhttp2.send();

};

Итак, у кого-то есть идея, почему второй запрос Ajax не работает? Или, может быть, я не должен делать это таким образом, я не знаю. Заранее спасибо: -)

/ cr! Ptal

1 Ответ

0 голосов
/ 07 января 2020

Хорошо, у меня была подсказка на другом форуме. <input> не имеет внутреннего Html, это не имело смысла. Я обновил свойство disabled, нажав на кнопку отправить. Вот исправленный код:

function loadResult(val_in, sum) {
    var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
         document.getElementById("einstein").innerHTML = this.responseText;
        }
      };
      var url = "";
      if (val_in == sum) {
          url = "../ajax/einstein.html";
          **document.getElementById("submitb").disabled = false;**
      } else {
          url = "../ajax/sum_err.html";
      }
      xhttp.open("POST", url, true);
      xhttp.send();   
};

/ cr! Ptal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...