我无法解决这个问题。目前正在与我一起工作。
基本上,我收到的是大型数组。需要担心的要素是每个问题的ID号。以及问题。
我将问题的每个值放入一个数组中,并将ID依次放入一个数组中。
当我将“问题”值添加到HTML的“选项”标签中时,我只能添加所选选项的文本(值)。因此,如果我添加随机问题..我不知道如何附加ID。该ID需要发送到我的后端,以便他们可以轻松找到每个问题。
目标:要附加一个问题和一个ID数组,当我从下拉列表中“选择”问题并将值添加到新数组中然后将其发送到后端时。这是一个令人困惑的任务,我似乎无法找出完成该任务的正确方法。
我所做的最好的就是将ID作为文本添加到“选项”的末尾。但是,它看起来肯定不好看,并且必须以某种方式使它的功能只接受整个字符串的数字。当我尝试发送带有问题字符串的ID时,使其可以使用每个ID的唯一ID来访问问题。
<script>
var testArray=[];
var scoreArray=[];
var questionArray=[];
var idArray=[];
var countBox=1;
var boxName=1;
function filterq(){
var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function() {
if (this.readyState == 4) {
document.getElementById('questionSelect').innerText = null
alert(this.responseText);
for(i=0;i<21;i++){
var questionDisplay = document.getElementById("questionSelect");
var options = document.createElement("option");
var data=JSON.parse(this.responseText);
questionArray.push(data['list'][i]['question']);
idArray.push(data['list'][i]['ID']);
options.text=questionArray[i]+" (ID:"+idArray[i]+")";
questionDisplay.add(options);
}
}
}
var qdiff = document.getElementById("qLevel").value;
var qtopic = document.getElementById("qTopic").value;
var qkeyword = document.getElementById("qKeyword").value;
var myObj = {id: "qfilter", topic: qtopic, difficulty: qdiff, keyword: qkeyword};
var myJSON = JSON.stringify(myObj);
ajaxRequest.open("POST","https://web.njit.edu/~rtw3/CS490/betamiddle.php", true);
//ajaxRequest.open("POST", "fronttest.php", true);
ajaxRequest.send(myJSON);
}
function addq(){
//pushing value onto test array
var addingquestion = document.getElementById('questionSelect').value;
testArray.push(addingquestion);
//creating textoutput for each question
var node = document.createElement("LI");
var textnode = document.createTextNode(addingquestion);
node.appendChild(textnode);
document.getElementById("test").appendChild(node);
//adding textboxes each click
var boxName = "q" + countBox;
document.getElementById('test').innerHTML+='<input type="text" id="'+boxName+'" size="1" placeholder="pts" maxlength="2"" /><br/>';
countBox+=1;
}
function examAdd(){
var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.getElementById("testLayout").innerHTML = "Exam has been Successfully Created";
}
}
var topics = document.getElementById("qTopic").value;
var keywords = document.getElementById("qKeyword").value;
var testname = document.getElementById("eName").value;
for(i=1; i<countBox; i++){
var theID = document.getElementById("q"+i).value;
scoreArray.push(theID);
}
var myObj = {id:"addt", test: testArray, scores: scoreArray, topic: topics, keyword: keywords, tname: testname};
var myJSON = JSON.stringify(myObj);
var myJSON2 = JSON.stringify(scoreArray);
//ajaxRequest.open("POST","examtest.php", true);
ajaxRequest.open("POST","https://web.njit.edu/~rtw3/CS490/betamiddle.php", true);
ajaxRequest.send(myJSON);
}
function cancel(){
document.getElementById('test').innerHTML=null;
}
</script>
</body>
</html>
为每个问题附加唯一的ID后,将其添加到新数组中,然后按顺序将每个唯一的ID和问题发送回去。
注意:ID在发送时已经带有问题。当我发回它时,我只需要以某种方式保存它,但是我不确定如何发送,因为我发回了所选选项的.value,而不是包含问题和ID的数组。