1

カンマ区切りのテキストファイルdata.txtから始めました

パンダとは何ですか?、動物、植物、家族、教師
rubixキューブとは何ですか?、パズル、迷路、ボックス、博物館の
HTMLは...、Webページのメインマークアップ言語、クロス-サイトセキュリティ、巧妙に構造化されたスクリプティング、非常に安全で安全な
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"/>

基本的に2つの結果ページが必要です。

1つは、ボタンが押されるたびsubmitに、ユーザーは別のページ(answer.php)に移動し、そこでユーザーが正解を取得したかどうかを表示します。ユーザーが次の質問に進むことができるように、続行ボタンも表示されます。

これは私が達成しようとしていることです:

質問結果

正しい/間違っている//ユーザーが正しい答えを得たかどうかによって異なります

正解: //正解を挿入
あなたの答え: //ユーザーが選択した答えを挿入

(リンクを続ける)

これまでのところ、これは私の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]、他のページで何を与えるか(私が探している値)に関して、私に何か違うもの(私が探している間違った配列値)を与えました。

コードを改善して機能させる方法について何か提案があれば、助けていただければ幸いです。前もって感謝します!

そして2つ目(これが長くなっている場合は申し訳ありませんが、同じアイデアについて別々の投稿をしたくありません)

ユーザーがクイズを完了すると全体の結果が表示される結果ページ(result.php )を作成する必要があります。

出力例:

ここに画像の説明を入力してください

正直なところ、このようなことをするのは初めてなので、その方法について混乱しています。

私のresult.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() 関数を使用してクイズ データをファイルに書き込み、results.php ページのデータを fopen() および/または関連関数: feof()、fgets/ で呼び出すのはどうでしょうか。 fgetcsv()など

于 2012-04-21T01:47:02.987 に答える