以前にテキストファイルを作成し、それを多次元配列に変換して、クイズの質問として表示しました。
注:画像を挿入できないため、例を示すことができないため、できる限り説明的になるように努めます。
ユーザーがクイズをクリックするたびに、一度に1つの質問だけを表示しようとしています。
これはこれまでの私のコードです。main.phpページ:
<h2>ONLINE QUIZ</h2>
<ul>
<li><a href='question.php'>Take quiz</a></li>
<li><a href='module.php'>Admin Module</a></li>
</ul>
<?php
$file = fopen('data.txt', 'r');
$array = array();
while ($line = fgetcsv($file)) {
$array[] = $line;
}
fclose($file);
session_start();
$_SESSION["questions_array"]=$array;
?>
そしてquestion.phpページ:
<?php
session_start();
$array=$_SESSION["questions_array"];
foreach ($array as $q => $data) {
echo '<p>'.array_shift($data).'</p>';
foreach ($data as $a => $answer) {
echo
' <input type="radio" name="question-'.$q.'" id="question-'.$q.'"'.
' value="'.$a.'"/>'.
' <label for="question-'.$q.'">'.$answer.'</label>'.
'<br>';
}
}
?>
リンクをクリックするTake quiz
と、ユーザーは質問ページに移動し、質問が1つだけ表示されます。次に、ユーザーは回答を選択してヒットしsubmit
ます。この送信ボタンを押すと、ユーザーは結果ページに移動し、そこでを押すことができますcontinue
。
リンクをクリックすると、Continue
次の質問が表示される質問ページにリダイレクトされます。
以前にやったことisset()
から、これを実現するために関数を使用しようとしています。ただし、問題は、自分のをどのように正確に書くかがわからないことですisset()
。
このサイトからこのスニペットを見つけました。それが役立つかどうかはわかりませんが、次のようになります。
if (!isset($_SESSION['FirstVisit'])) {
//show site for the first time part
$_SESSION['FirstVisit] = 1;
header("Location: http://example.com/index.php");
// Don't forget to add http colon slash slash www dot before!
} else { Show normal site }
しかし、もう一度、私は自分自身が空白であることに気づきました。isset()
を使用して1つの質問のみを表示するにはどうすればよいですか?