как получить массив php, сгенерированный из базы данных в переменную ajax - PullRequest
1 голос
/ 12 апреля 2020

У меня есть пять вопросов из базы данных. Мне нужно хранить все вопросы; каждый со своими параметрами и правильным ответом в виде одного массива. Но приведенный ниже скрипт хранит каждый вопрос с его опциями в виде одного массива - у меня есть 5 массивов вместо 1. Каков наилучший способ добиться этого; Какие изменения я могу внести в скрипт, пожалуйста?

вопрос. js

var ajax = new XMLHttpRequest();
ajax.open("GET", "data.php", true);
ajax.send();
ajax.onreadystatechange = function () {
    if (this.readyState === 4 && this.status === 200) {
        var data = JSON.parse(this.responseText);
        console.log(data);
        for (var a = 0; a < data.length; a++) {
            var question_text = data[a].question_text;
            var choice1 = data[a].choice1;
            var choice2 = data[a].choice2;
            var choice3 = data[a].choice3;
            var choice4 = data[a].choice4;
            var answer = data[a].correctchoice;
    (function () {
        var questions = [{
                question: question_text,
                choices: [choice1, choice2, choice3, choice4]
            }];
             var   correctAnswer = answer;

             console.log('question: ' +  question_text, 'a: ' + choice1, 'b: ' + choice2, 'c: ' + choice3, 'd: ' + choice4, 'answer: ' + correctAnswer);

1 Ответ

0 голосов
/ 16 апреля 2020

Вы должны определить массив questions во внешней области, а затем pu sh каждый вопрос внутри for l oop:

// Define an outer scope array here so you can use it later
var questions = [];

var ajax = new XMLHttpRequest();
ajax.open("GET", "data.php", true);
ajax.send();
ajax.onreadystatechange = function () {
  if (this.readyState === 4 && this.status === 200) {
    var data = JSON.parse(this.responseText);

    for (var a = 0; a < data.length; a++) {
      var question_text = data[a].question_text;
      var choice1 = data[a].choice1;
      var choice2 = data[a].choice2;
      var choice3 = data[a].choice3;
      var choice4 = data[a].choice4;
      var answer = data[a].correctchoice;

      // Push a new question to the questions array
      questions.push({
        question: question_text,
        choices: [choice1, choice2, choice3, choice4],
        correctAnswer: answer
      });
    }

    // You'll have the array filled with each item to one question with all the options and the correctAnswer
    console.log('questions', questions);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...