1

我从逗号分隔的文本文件data.txt开始

什么是熊猫?,动物,植物,家庭成员,老师
什么是魔方?,拼图,迷宫,盒子,博物馆
HTML是...,网页的主要标记语言,交叉-站点安全,巧妙的结构化脚本,极其安全和安全
的PHP是...,通用服务器端脚本语言,跨站点安全,处理超文本产品,处理HTML漂亮

我从文本文件中加载了我的问题,我的main.php看起来像这样

<h2>MasterQuiz Online</h2>
<p>Where would you like to go?</p>

<ul>
    <li><a href='question.php'>Take quiz</a></li>
    <li><a href='module.php'>Admin Module</a></li>
</ul>

<?php
//text file
$file = fopen('data.txt', 'r');
//array setup
$array = array();
while ($line = fgetcsv($file)) {
   $array[] = $line;
}

fclose($file);

session_start();
$_SESSION["questions_array"]=$array;

//display var and index
var_dump($array);

?>

虽然这是我的question.php的样子

<h2>Online Quiz</h2>

<form action="answer.php" method="post">

<?php

session_start();
if(sizeof($_SESSION['questions_array']) > 0 )
{
    // Get the next question off of the quiz in session
    $data = array_shift($_SESSION["questions_array"]);

    echo '<p>'.array_shift($data).'</p>'; // next question
    //shuffle($data); //shuffle choices, toggle if needed

    foreach ($data as $a => $answer){ //answers
        echo 
             '<input type="radio" name="question-'.$data.'" id="question-'.$data.'"'.
             'value="'.$a.'"/>'.
             '<label for="question-'.$data.'">'.$answer.'</label>'.
             '<br>';
             }  
}
else{
  header('location:result.php'); //questions array is empty, go to results page
}
?>
<br>
<input type="submit" name="submit" value="Submit"/>

基本上我需要两个结果页面。

一个是每次submit点击按钮时,用户都会被引导到另一个页面(answer.php),它会显示用户是否得到了正确的答案。还会显示一个继续按钮,以便用户可以继续下一个问题。

这就是我想要实现的目标:

问题结果

CORRECT / INCORRECT //取决于用户是否得到正确答案

正确答案: //插入正确答案
您的答案: //插入用户选择的答案

(继续链接)

到目前为止,这就是我的answer.php的样子

<h2>Question Results</h2>

<?php

session_start();
$array=$_SESSION["questions_array"];

//insert whether correct or incorrect here

echo "Your answer:<br>";
echo "Correct answer:".$array[0][1];

?>
<br><br>
<a href="question.php">Continue</a>

但它不起作用。我完全不知道为什么。给了我一些不同的$array[0][1]东西(我正在寻找的错误数组值),它在其他页面上给了我什么(我正在寻找的值)。

如果你们对我如何使我的代码更好和工作有任何建议,我将不胜感激!提前致谢!

第二个(如果这很长,我很抱歉,但我不想就同一个想法做单独的帖子)

我需要制作一个结果页面(result.php),一旦用户完成测验,就会显示整体结果。

示例输出:

在此处输入图像描述

老实说,我对如何做到这一点感到困惑,因为这是我第一次做这样的事情。

我的结果.php

<h2>Total Results</h2>

<?php

//table of results
echo "<table border='1'>
  <tr><th>Question</th><th>Your answer</th><th>Correct answer</th><th>Points</th></tr>
  <tr><td>Question#1</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#2</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#3</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#4</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><td>Question#5</td><td>one</td><td>two</td><td>three</td></tr>
  <tr><th>Total Points</th></tr>
  </table>";

?>
<br>
<a href="p05_main.php">Back to homepage</a>

表中的值只是暂时存在,因为它让我思考得更好。如果让任何人感到困惑,我很抱歉!

再次非常感谢您的帮助!

4

1 回答 1

0

如何使用 PHP fwrite() 函数将测验数据写入文件,然后使用 fopen() 和/或相关函数调用 results.php 页面上的数据:feof()、fgets/ fgetcsv() 等

于 2012-04-21T01:47:02.987 回答