gpt4 book ai didi

javascript - 从数据库重新加载内容 onclick

转载 作者:行者123 更新时间:2023-11-29 09:43:47 24 4
gpt4 key购买 nike

我想写一个小测验应用程序。问题是,如果我尝试通过调用执行 select onclick 的函数来获取新问题,则不会出现新问题。它只是什么都不做。

我尝试了两种不同的方法:-我尝试用一​​个选择来选择所有十个问题,但我找不到如何将多数组传递给javascript-然后,我尝试每次回答问题时仅选择一个新问题(单击答案)。

我不太确定哪种解决方案是更好的方法。我猜我的程序逻辑有问题,但我真的不知道。如果有人能帮助我解决这个问题那就太好了。这是我的代码:

php

$questions = $db->excSelect("SELECT * FROM question WHERE art = 0 ORDER BY RAND() LIMIT 10");

function getQuestion($questions) {
return json_encode($questions);
}

JavaScript

$().ready(function() {
var questionNumber = 0;
var question = JSON.parse('<?php echo getQuestion($questions); ?>');

function showQuestion() {
$("#question").text(question[questionNumber].question);
$("#answer-1").text(question[questionNumber].answer_1);
$("#answer-2").text(question[questionNumber].answer_2);
$("#answer-3").text(question[questionNumber].answer_3);
$("#answer-4").text(question[questionNumber].answer_4);
questionNumber++;
}
showQuestion();
$(".answer").click(function() {
if (questionNumber != 10) { showQuestion(); }
else { $("#quiz-site").text("EVALUATION"); }
});
});

html

<article id="quiz-site">
<section id="quiz">

<section id="question"></section>

<section class="block1">
<section id="answer-1" class="answer"></section>
<section id="answer-2" class="answer"></section>
</section>

<section class="block2">
<section id="answer-3" class="answer"></section>
<section id="answer-4" class="answer"></section>
</section>
</section>
</article>

我将第一个问题正确插入到各个部分中,但是一旦我单击答案,它就什么也不做。

最佳答案

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>StackOverFlow</title>

<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous">
</script>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<article id="quiz-site">
<section id="quiz">

</section>
</article>
</body>
</html>

JavaScript(app.js):

$(document).ready( function(){

let quiz = $("#quiz");
let questionsArray;

$.ajax({

url: './questions.php',
type: 'POST',
data: "" ,
processData: false,
contentType: false,

complete: function(result) {

let questions = JSON.parse(result.responseText);

// this part converts the object to an array so we can use the shift method to pull
// the pointed item from the array
questionsArray = Object.keys(questions).map(function(key) {
return [(key), questions[key]];
});

let question = questionsArray.shift();
updateDOM(question[1]);


}

});



$(document).on('click', '.answer', function (e) {

let question = questionsArray.shift();
if(question !== undefined) {
updateDOM(question[1]);
}
});

updateDOM = (question) => {

let answer = `<section id="question">${question}</section>

<section class="block1">
<section id="answer-1" class="answer"></section>
<section id="answer-2" class="answer"></section>
</section>

<section class="block2">
<section id="answer-3" class="answer"></section>
<section id="answer-4" class="answer"></section>
</section>`;
quiz.html ('');
quiz.append(answer);


};




});

PHP(questions.php):

<?php

echo json_encode([ 'q1' => 'how much is 2*3?',
'q2' => 'how much is 2*4?',
'q3' => 'how much is 2*5?'
]);

关于javascript - 从数据库重新加载内容 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56091487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com