मेरे पास डेटाबेस से पांच प्रश्न आ रहे हैं। मुझे सभी प्रश्नों को संग्रहीत करने की आवश्यकता है; प्रत्येक अपने विकल्पों के साथ और एक ही सरणी के रूप में सही उत्तर। लेकिन नीचे दी गई स्क्रिप्ट प्रत्येक प्रश्न को उसके विकल्पों के साथ एक ही सरणी के रूप में संग्रहीत करती है - मेरे पास 1 के बजाय 5 सरणियाँ हैं। कृपया मैं स्क्रिप्ट में क्या संशोधन कर सकता हूँ?

प्रश्न.जेएस

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
John Olayiwola 12 अप्रैल 2020, 23:28

1 उत्तर

सबसे बढ़िया उत्तर

आपको बाहरी दायरे पर questions सरणी को परिभाषित करना होगा और फिर प्रत्येक प्रश्न को for लूप के अंदर धकेलना होगा:

// 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);
  }
}
0
Christos Lytras 16 अप्रैल 2020, 20:01