Notice: Undefined variable: DisabledRadio in C:\xampp\htdocs\quiz\oracz-test.php on line 89
Notice: Undefined variable: out in C:\xampp\htdocs\quiz\oracz-test.php on line 102
<?php class Point { var $Question; var $Options; var $Answer; } class Test { var $TestName = 'Test językowy'; var $PageName = 'strona'; var $ResultsName = 'wyniki testu'; var $PrevPageButtonName = '< cofnij'; var $NextPageButtonName = 'dalej >'; var $CheckButtonName = 'sprawdź test'; var $ShowAnswersButtonName = 'zobacz odpowiedzi'; var $CorrectAnswersName = 'dobrze'; var $WrongAnswersName = 'źle'; var $BlankAnswersName = 'brak'; var $CorrectAnswersColor = '#02a629'; var $WrongAnswersColor = '#e51c01'; var $BlankAnswersColor = '#ccc'; var $AnswersPercentLenght = 200; var $Points; var $PointsPerPage = 5; var $PageNr; var $TmpAnswers; var $Answers; var $CorrectAnswers; var $CorrectAnswersPercent; var $WrongAnswers; var $WrongAnswersPercent; var $BlankAnswers; var $BlankAnswersPercent; function CountPages() { } function CountPoints() { } function NewPoint($Question, $Options, $Answer) { $Nr = $this->CountPoints() + 1; $this->Points[$Nr] = new Point; $this->Points[$Nr]->Question = $Question; $this->Points[$Nr]->Options = $Options; $this->Points[$Nr]->Answer = $Answer; } function ViewPoint($Nr, $SelectedOption, $SelectRightAnswer) { if (($Nr <= $this->CountPoints()) && ($Nr > 0)) { $out = '<li class="point">'.BR; $out .= $this->Points[$Nr]->Question.BR; $out .= '<ul>'.BR; foreach ($this->Points[$Nr]->Options as $Key => $Option) { $Key = $Key + 1; $out .= '<li'; if ($SelectRightAnswer > 0) { $DisabledRadio = 'disabled="disabled" '; if ($Key == $SelectRightAnswer) $out .= ' class="right-answer" style="color:'.$this->CorrectAnswersColor.'"'; elseif ($Key == $SelectedOption) $out .= ' class="wrong-answer" style="color:'.$this->WrongAnswersColor.'"'; } if ($SelectedOption == $Key) $CheckedRadio = 'checked="checked" '; else $CheckedRadio = ''; $out .= '><input type="radio" '.$DisabledRadio.'id="r'.$Nr.$Key.'" name="'.$Nr.'" value="'.$Key.'" '.$CheckedRadio.'/>'; $out .= '<label for="r'.$Nr.$Key.'">'.$Option.'</label></li>'."\r\n"; } $out .= '</ul>'.BR; $out .= '</li>'."\r\n"; return $out; } } function ViewCustomList($FromNr, $NrOfPoints) { for ($i = $FromNr; $i < $FromNr+$NrOfPoints; $i++) if ($this->Answers == '') $out .= $this->ViewPoint($i, $this->TmpAnswers[$i - 1], 0); else $out .= $this->ViewPoint($i, $this->TmpAnswers[$i - 1], $this->Points[$i]->Answer); return $out; } function TakePost() { # zbieranie odpowiedzi $this->TmpAnswers = $_POST['TmpAnswers']; $FromNr = ($_POST['PageNr'] - 1) * $this->PointsPerPage + 1; if ($_POST['PageNr'] == $this->CountPages()) $NrOfPoints = $this->CountPoints() - $FromNr + 1; else $NrOfPoints = $this->PointsPerPage; for ($i = $FromNr; $i < $FromNr + $NrOfPoints; $i++) { if ($_POST[$i] == '') $this->TmpAnswers[$i - 1] = '0'; else $this->TmpAnswers[$i - 1] = $_POST[$i]; } } } # naciśnięcie przycisku NextPage if ($this->CountPages() > $_POST['PageNr']) $this->PageNr = $_POST['PageNr'] + 1; else $this->PageNr = 1; } # naciśnięcie przycisku PrevPage if ($_POST['PageNr'] > 1) $this->PageNr = $_POST['PageNr'] - 1; else $this->PageNr = $this->CountPages(); } } else { # wielkości startowe $this->PageNr = 1; $this->TmpAnswers = $_POST['TmpAnswers']; else for ($i = 1; $i <= $this->CountPoints(); $i++) $this->TmpAnswers .= '0'; } #pobierz czy jest odpowiedz $this->Answers .= $_POST['Answers']; } } #sprawdź odpowiedzi function CheckAnswers() { $this->CorrectAnswers = 0; $this->BlankAnswers = 0; for ($i = 1; $i <= $this->CountPoints(); $i++) { if ($this->TmpAnswers[$i - 1] == $this->Points[$i]->Answer) $this->CorrectAnswers += 1; if ($this->TmpAnswers[$i - 1] == '0') $this->BlankAnswers += 1; } $this->WrongAnswers = $this->CountPoints() - ($this->CorrectAnswers + $this->BlankAnswers); $CAP = $this->CorrectAnswers/$this->CountPoints()*1000; $WAP = $this->WrongAnswers/$this->CountPoints()*1000; $BAP = $this->BlankAnswers/$this->CountPoints()*1000; } function ViewTest() { $this->TakePost(); # formularz wyników $this->CheckAnswers(); $out = '<form id ="test" action="" method="post">'.BR; $out .= '<fieldset>'.BR; $out .= '<legend>'.$this->TestName.' ['.$this->ResultsName.']</legend>'.BR; $out .= '<ul id="results">'.BR; $out .= '<li id="CorrectAnswers" style="border-left:'.$CorrectAnswersLenght.'px solid '.$this->CorrectAnswersColor.'">'.$this->CorrectAnswers.' '.$this->CorrectAnswersName.' ('.$this->CorrectAnswersPercent.'%)</li>'.BR; $out .= '<li id="WrongAnswers" style="border-left:'.$WrongAnswersLenght.'px solid '.$this->WrongAnswersColor.'">'.$this->WrongAnswers.' '.$this->WrongAnswersName.' ('.$this->WrongAnswersPercent.'%)</li>'.BR; $out .= '<li id="BlankAnswers" style="border-left:'.$BlankAnswersLenght.'px solid '.$this->BlankAnswersColor.'">'.$this->BlankAnswers.' '.$this->BlankAnswersName.' ('.$this->BlankAnswersPercent.'%)</li>'.BR; $out .= '</ul>'.BR; $out .= '<input type="hidden" name="TmpAnswers" value="'.$this->TmpAnswers.'" />'.BR; $out .= '<input type="hidden" name="Answers" value="Check" />'.BR; $out .= '<div id="buttons">'.BR; $out .= '<input type="submit" id="ShowAnswers" name="ShowAnswers" value="'.$this->ShowAnswersButtonName.'" />'.BR; $out .= '</div>'.BR; $out .= '</fieldset>'.BR; $out .= '</form>'.BR; } else { #formularz pytań i odpowiedzi $out = '<form id ="test" action="" method="post">'.BR; $out .= '<fieldset>'.BR; $out .= '<legend>'.$this->TestName.' ['.$this->PageName.' '.$this->PageNr.'/'.$this->CountPages().']</legend>'.BR; $out .= '<ul>'.BR; $out .= $this->ViewCustomList(($this->PageNr - 1) * $this->PointsPerPage + 1, $this->PointsPerPage); $out .= '</ul>'.BR; $out .= '<input type="hidden" name="TmpAnswers" value="'.$this->TmpAnswers.'" />'.BR; if ($this->Answers != '') $out .= '<input type="hidden" name="Answers" value="'.$this->Answers.'" />'.BR; $out .= '<input type="hidden" name="PageNr" value="'.$this->PageNr.'" />'.BR; $out .= '<div id="buttons">'.BR; if ($this->PageNr > 1) $out .= '<input type="submit" id="PrevPage" name="PrevPage" value="'.$this->PrevPageButtonName.'" />'.BR; if ($this->PageNr < $this->CountPages()) $out .= '<input type="submit" id="NextPage" name="NextPage" value="'.$this->NextPageButtonName.'" />'.BR; if (($this->PageNr == $this->CountPages()) && ($this->Answers == '')) $out .= '<input type="submit" id="Check" name="Check" value="'.$this->CheckButtonName.'" />'.BR; $out .= '</div>'.BR; $out .= '</fieldset>'.BR; $out .= '</form>'.BR; } return $out; } } ?>
jak to naprawić?