JS - Добавление новых узлов в файл данных XML в цикле из нескольких форм - PullRequest
0 голосов
/ 11 сентября 2018

Я создал форму, которая будет генерировать дубликат себя и повторять имена атрибутов в каждой новой форме, чтобы я мог отправить все данные формы в файл XML в цикле.Я сталкиваюсь с множеством проблем в циклической части кода здесь - мне кажется, что я упускаю что-то очень фундаментальное, но я не уверен, в чем заключается самая большая проблема.

Любой совет ввсе ценится!

<!DOCTYPE html>
<html>

<head>
  <title>Add a New Course</title>
  <style>
    body {
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    }
    
    .buttonHolder {
      text-align: center;
    }
  </style>
</head>

<body>
  <form action="" id="courseForm">
    <p>
      <fieldset>
        <legend>Enter course info:</legend>
        Course title: <br>
        <input type="text" name="courseTitle1" value=""><br> Category: <br>
        <input type="text" name="category1" value=""><br> Duration: <br>
        <input type="time" name="duration1" value=""><br> Subcategory: <br>
        <input type="text" name="subcategory1" value=""><br> Description: <br>
        <textarea rows="4" cols="60" name="description1"></textarea><br> URL: <br>
        <input type="text" name="url1" value=""><br>
        <div class="buttonHolder">
          <input type="submit" value="Submit All" onclick="javascript: submitFormData();">
          <input type="button" value="New Course" onclick="javascript: addCourseForm();">
        </div>
      </fieldset>
    </p>
  </form>
</body>

<script>
  //Initialize the number of forms being submitted as 1
  var count = 1;

  function addCourseForm() {
    //Get the course form element
    var course = document.getElementById("courseForm");

    //Error checking here, making sure we got courseForm
    if (course) {
      //Create a new <p> element which contains the form
      var newP = document.createElement('p');
      newP.innerHTML = '<fieldset> <legend>Enter course info:</legend> Course title: <br> <input type="text" name="courseTitle' + (count + 1) + '" value=""><br> Category: <br> <input type="text" name="category' + (count + 1) + '" value=""><br> Duration: <br> <input type="time" name="duration' + (count + 1) + '" value=""><br> Subcategory: <br> <input type="text" name="subcategory' + (count + 1) + '" value=""><br> Description: <br> <textarea rows="4" cols="60" name="description' + (count + 1) + '"></textarea><br> URL: <br><input type="text" name="url' + (count + 1) + '" value=""><br> <div class="buttonHolder"> <input type="submit" value="Submit All"> <input type="button" value="New Course" onclick="javascript: addCourseForm();"> </div> </fieldset>';

      //Appends the new <p> element to the other forms
      course.appendChild(newP);

      //Add one to the number of forms being submitted
      count++;
    }
  }

  function submitFormData(xml) {
    var xhttp = new XMLHttpRequest();

    xhttp.open("GET", "https://splm.sharepoint.com/sites/OCB/Shared%20Documents/Testing/curriculumdata.xml", true);
    xhttp.setRequestHeader("Content-Type", "text/xml");
    xhttp.send();

    var xmlDoc = xhttp.responseXML;

    for (var x = 1; x = count; x++) {

      if (document.getElementsByTagName("category" + x) == null) {
        console.log(count);
      } else {
        newElement = xmlDoc.createElement("category");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("category" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);

        newElement = xmlDoc.createElement("description");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("description" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);

        newElement = xmlDoc.createElement("displayName");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("displayName" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);

        newElement = xmlDoc.createElement("duration");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("duration" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);

        newElement = xmlDoc.createElement("id");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("id" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);

        newElement = xmlDoc.createElement("subcategory");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("subcategory" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);

        newElement = xmlDoc.createElement("tableId");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("tableId" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);

        newElement = xmlDoc.createElement("url");
        newText = xmlDoc.createTextNode(document.getElementsByTagName("url" + x));
        newElement.appendChild(newText);
        xmlDoc.getElementsByTagName("course")[0].appendChild(newElement);
      };
    };
  }
</script>

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