正确存储Javascript数组推送

时间:2019-03-10 21:09:26

标签: javascript html ajax loops for-loop

我的程序:使用选择选项和文本字段创建测试。每次添加问题以选择分数时,都会输入文本字段。

我在函数外部有一个数组,我想用scores填充。

在我的for loop中,我尝试通过在文档上显示array本身来测试其是否被填充,

我的问题:当我将数据发送到php文件并回显内容时,scoreArray突然空了。我不知道为什么,因为它正确显示在HTML上,但是从php文件接收回来的信息不见了..就像我在for循环后不小心清空了数组,这对我没有意义

var testArray = [];
var scoreArray = [];

function examAdd() {
  var ajaxRequest = new XMLHttpRequest();
  ajaxRequest.onreadystatechange = function() {
    if (ajaxRequest.readyState == 4) {

      var ajaxDisplay = document.getElementById('ajaxDiv');
      var res = ajaxRequest.innerHTML = this.responseText;
      var data = JSON.parse(res);
      alert(this.responseText);


      for (i = 1; i < 21; i++) {
        var theID = document.getElementById("q" + i).value;
        scoreArray.push(theID);
        document.getElementById("exam").innerHTML = "Question Array: " + testArray + " || Scores Array: " + scoreArray;
      }
    }
  }

  var topics = document.getElementById("qTopic").value;
  var keywords = document.getElementById("qKeyword").value;
  var testname = document.getElementById("eName").value;


  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);
}
<div id="testLayout">

  <h4>Test</h4>
  <center>
    <ol id="test">
    </ol>
  </center>

</div>

<input type="text" name="eName" id="eName" placeholder="Enter Test Name"><br><br>
<div class="button">
  <input type="button" value="Create" onclick="examAdd();">
  <input type="button" value="Cancel" onclick="cancel();">
</div>

0 个答案:

没有答案