Хранение значений идентификаторов для каждого элемента значения параметра - PullRequest
0 голосов
/ 07 апреля 2019

Не могу обернуться вокруг проблемы, которая у меня есть.Это в группе, с которой я сейчас работаю.

По сути, мне посылают большой массив.Элементы, о которых нужно беспокоиться, это идентификационный номер каждого вопроса.А также вопрос.

Я помещаю каждое значение вопроса в массив, а идентификатор в массиве по порядку.

Когда я добавляю значение «вопрос» вопцию тега для HTML, я мог только добавить текст (значение) выбранной опции.Поэтому, если я добавлю случайные вопросы .. Я не могу понять, как прикрепить идентификатор.Идентификатор необходим для отправки в мой бэкэнд, чтобы они могли найти каждый вопрос намного проще.

Цель: прикрепить вопрос и массив идентификаторов, когда я «выбираю» вопрос из выпадающего списка и добавляю значениев новый массив, который затем будет отправлен в бэкэнд. Это запутанная задача, и я не могу понять, как это сделать.

Лучшее, что я сделал, былодобавить идентификатор в конце «опции» в виде текста.Но это, конечно, не очень красиво выглядит и должно было бы каким-то образом создать функцию, которая бы принимала только число всей строки в конце.Когда я пытаюсь просто отправить идентификатор со строкой вопроса, делая так, чтобы они могли получить доступ к вопросу с помощью уникального идентификатора каждого из них.

<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>

Прикрепление уникального идентификатора к каждому вопросу ПОСЛЕ того, как он имеетбыл добавлен в новый массив, чтобы затем отправляться обратно с каждым уникальным идентификатором и вопросом в следующем порядке.

примечание: идентификатор уже содержит вопрос при отправке.Мне просто нужно как-то сохранить его при отправке обратно, но я не уверен, как, поскольку я отправляю обратно .value выбранной опции, а не массив с вопросами и идентификаторами.

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