javascript - PHP、mySQL、随机问题测验
问题描述
我正在尝试构建应该按照以下顺序工作的测验:
- 带有“开始”按钮的欢迎屏幕
- 单击开始后,从数据库 (mySQL) 中绘制一个问题并显示在屏幕上(用户只能看到一个问题),
- 用户必须选择选项 A 或 B
- 单击A或B后(答案应写入数组),然后从数据库中抽取下一个问题(问题编号不能重复)
- 用户必须选择选项 A 或 B
等等……等等……直到用户回答 10 个随机问题
在 10 个答案之后,我希望从数据库祝贺中选择 SELECT,以引用所有答案(WHERE IN)
index.php(主文件):
<!doctype html>
<head></head>
<div>
Some informations - only text
</div>
<div class ="quiz" id="quiz">
<?php
include 'quiz.php';
?>
</div>
测验.php:
<?php
include 'draw-questions.php';
header('Content-Type: application/json');
$aResult = array();
if (isset($_POST['start-quiz'])) { $option = "start"; }
if( isset($_POST['next-question_a']) ) { $option = "next"; }
if( isset($_POST['next-question_b']) ) { $option = "next"; }
switch ($option){
case 'start':
$index = 0;
$draw_q_ID = DrawQuestion();
$q_ID = $draw_q_ID[$index];
$drawn_question = PickQuestion($q_ID);
$question = explode(",", $drawn_question);
RunQuiz();
break;
case 'next':
$index++;
$q_ID = $draw_q_ID[$index];
$drawn_question = PickQuestion($q_ID);
$question = explode(",", $drawn_question);
RunQuiz();
break;
default:
echo"
<div class='quiz-intro'>
welcome text
</div>
<form method='POST' action='' >
<input type='submit' id='start-quiz' name='start-quiz' value='START'>
</form>
";
break;
}
function RunQuiz(){
?>
<script>
const myNode2 = document.getElementById("quiz");
while (myNode2.firstChild) {
myNode2.removeChild(myNode2.lastChild);
}
</script>
<?php
global $question;
echo "
<div class='container' id='quiz-form'>
<div class='row'>
<div class='col-md-5' id='opcja_A' value='$question[0]'>
<input type='submit' id='next-question_a' name='next-question' value='$question[0]' style='color: rgba(0, 0, 0,0)'>
<img src='../img_d/$question[1]' style='width:80%; padding: 20px 0'>
<h2>$question[0]</h2>
</div>
<div class='col-md-2'>
<img src='../img_d/vs.png' style='width:40%; padding-top:10rem'>
</div>
<div class='col-md-5' id='opcja_B' value='$question[2]''>
<input type='submit' id='next-question_b' name='next-question' value='$question[2]' style='color: rgba(0, 0, 0,0)'>
<img src='../img_d/$question[3]' style='width:80%; padding: 20px 0'>
<h2>$question[2]</h2>
</div>
</div>
</div>
";
绘制questions.php:
<?php
function DrawQuestion(){
$q_ID = array();
while(sizeof($q_ID)<=30) {
$number = str_pad(rand(1, 57), 2, "0", STR_PAD_LEFT);
if (!in_array($number, $q_ID)) {
array_push($q_ID, $number);
}
}
return $q_ID;
}
function PickQuestion($q_ID){
require '../config/db_connection.php';
$quiz = "SELECT * FROM `quiz` WHERE `d_id` = '$q_ID'";
$db = getConnection();
$stmt = $db->prepare($quiz);
$stmt->execute();
while ($row_quiz = $stmt->fetch()) {
$question_a = $row_quiz['d_a'];
$question_a_image = $row_quiz['d_a_image'];
$question_b = $row_quiz['d_b'];
$question_b_image = $row_quiz['d_b_image'];
}
$result = $question_a.','.$question_a_image.','.$question_b.','.$question_b_image;
return $result;
}
我考虑了很久,并尝试解决我的问题。一直以来,我在编写数组答案和绘制另一个问题时遇到问题。使用我总是会丢失答案和我已经得到答案的问题数量。当然,我可以一次画出 10 个问题,但问题是一次显示一个,然后在某个地方收集答案。
任何建议,提示我应该如何解决这个问题?单击答案后如何存储答案并转到下一个问题而不会丢失问题ID和答案?
我也尝试过 JS 和 jQuery如何通过 JavaScript 调用 PHP 函数?但没有结果
解决方案
推荐阅读
- javascript - 无法使用 Javascript 在 SVG 文件中单击 SVG 元素
- ajax - 如何使用带有id的ajax插入数据而不使用laravel中的表单
- php - 用于获取用户生成内容的 Wordpress 查询不起作用
- html - 不能将主要内容放在中心
- c# - 如何从 C# 中的 Google Calendar API 中创建的事件中获取 HangoutLink?
- php - 如何在 laravel 中使用 ajax 调用从控制器加载数据以查看?
- amazon-web-services - AWS EC2 公共 DNS 和公共 IP 显示拒绝在浏览器上连接
- python - Python代码来计算2个邮政编码之间的距离?
- c - 我尝试编写一个使用函数查找 GCD 的程序。为什么这段代码不起作用?
- pycharm - 修复 PyCharm 的导航菜单