Я создал форму, которая будет генерировать дубликат себя и повторять имена атрибутов в каждой новой форме, чтобы я мог отправить все данные формы в файл 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>