Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd Notice
Forum PHP.pl > Forum > Przedszkole
hhuubbeerrtt00
Błędy:
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




  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7. define('BR', "\r\n");
  8.  
  9. class Point
  10. {
  11. var $Question;
  12. var $Options;
  13. var $Answer;
  14. }
  15.  
  16. class Test
  17. {
  18. var $TestName = 'Test językowy';
  19. var $PageName = 'strona';
  20. var $ResultsName = 'wyniki testu';
  21. var $PrevPageButtonName = '< cofnij';
  22. var $NextPageButtonName = 'dalej >';
  23. var $CheckButtonName = 'sprawdź test';
  24. var $ShowAnswersButtonName = 'zobacz odpowiedzi';
  25. var $CorrectAnswersName = 'dobrze';
  26. var $WrongAnswersName = 'źle';
  27. var $BlankAnswersName = 'brak';
  28.  
  29. var $CorrectAnswersColor = '#02a629';
  30. var $WrongAnswersColor = '#e51c01';
  31. var $BlankAnswersColor = '#ccc';
  32.  
  33. var $AnswersPercentLenght = 200;
  34. var $Points;
  35. var $PointsPerPage = 5;
  36. var $PageNr;
  37. var $TmpAnswers;
  38. var $Answers;
  39.  
  40. var $CorrectAnswers;
  41. var $CorrectAnswersPercent;
  42. var $WrongAnswers;
  43. var $WrongAnswersPercent;
  44. var $BlankAnswers;
  45. var $BlankAnswersPercent;
  46.  
  47. function CountPages() {
  48. return ceil($this->CountPoints() / $this->PointsPerPage);
  49. }
  50.  
  51. function CountPoints() {
  52. return count($this->Points);
  53. }
  54.  
  55. function NewPoint($Question, $Options, $Answer) {
  56.  
  57. $Nr = $this->CountPoints() + 1;
  58. $this->Points[$Nr] = new Point;
  59. $this->Points[$Nr]->Question = $Question;
  60. $this->Points[$Nr]->Options = $Options;
  61. $this->Points[$Nr]->Answer = $Answer;
  62.  
  63. }
  64.  
  65. function ViewPoint($Nr, $SelectedOption, $SelectRightAnswer) {
  66.  
  67. if (($Nr <= $this->CountPoints()) && ($Nr > 0)) {
  68. $out = '<li class="point">'.BR;
  69. $out .= $this->Points[$Nr]->Question.BR;
  70. $out .= '<ul>'.BR;
  71.  
  72. foreach ($this->Points[$Nr]->Options as $Key => $Option) {
  73.  
  74. $Key = $Key + 1;
  75. $out .= '<li';
  76.  
  77. if ($SelectRightAnswer > 0) {
  78.  
  79. $DisabledRadio = 'disabled="disabled" ';
  80.  
  81. if ($Key == $SelectRightAnswer)
  82. $out .= ' class="right-answer" style="color:'.$this->CorrectAnswersColor.'"';
  83. elseif ($Key == $SelectedOption)
  84. $out .= ' class="wrong-answer" style="color:'.$this->WrongAnswersColor.'"';
  85. }
  86.  
  87. if ($SelectedOption == $Key)
  88. $CheckedRadio = 'checked="checked" ';
  89. else
  90. $CheckedRadio = '';
  91.  
  92. $out .= '><input type="radio" '.$DisabledRadio.'id="r'.$Nr.$Key.'" name="'.$Nr.'" value="'.$Key.'" '.$CheckedRadio.'/>';
  93. $out .= '<label for="r'.$Nr.$Key.'">'.$Option.'</label></li>'."\r\n";
  94. }
  95. $out .= '</ul>'.BR;
  96. $out .= '</li>'."\r\n";
  97. return $out;
  98. }
  99. }
  100.  
  101. function ViewCustomList($FromNr, $NrOfPoints) {
  102.  
  103. for ($i = $FromNr; $i < $FromNr+$NrOfPoints; $i++)
  104. if ($this->Answers == '')
  105. $out .= $this->ViewPoint($i, $this->TmpAnswers[$i - 1], 0);
  106. else
  107. $out .= $this->ViewPoint($i, $this->TmpAnswers[$i - 1], $this->Points[$i]->Answer);
  108.  
  109. return $out;
  110. }
  111.  
  112. function TakePost() {
  113. if (isset($_POST['PageNr'])) {
  114. # zbieranie odpowiedzi
  115. if (isset($_POST['TmpAnswers'])) {
  116.  
  117. $this->TmpAnswers = $_POST['TmpAnswers'];
  118.  
  119. if (!isset($_POST['Answers'])) {
  120.  
  121. $FromNr = ($_POST['PageNr'] - 1) * $this->PointsPerPage + 1;
  122.  
  123. if ($_POST['PageNr'] == $this->CountPages())
  124. $NrOfPoints = $this->CountPoints() - $FromNr + 1;
  125. else
  126. $NrOfPoints = $this->PointsPerPage;
  127.  
  128. for ($i = $FromNr; $i < $FromNr + $NrOfPoints; $i++) {
  129.  
  130. if ($_POST[$i] == '')
  131. $this->TmpAnswers[$i - 1] = '0';
  132. else
  133. $this->TmpAnswers[$i - 1] = $_POST[$i];
  134. }
  135. }
  136. }
  137.  
  138. # naciśnięcie przycisku NextPage
  139. if (isset($_POST['NextPage'])) {
  140.  
  141. if ($this->CountPages() > $_POST['PageNr'])
  142.  
  143. $this->PageNr = $_POST['PageNr'] + 1;
  144.  
  145. else
  146.  
  147. $this->PageNr = 1;
  148. }
  149.  
  150. # naciśnięcie przycisku PrevPage
  151. if (isset($_POST['PrevPage'])) {
  152.  
  153. if ($_POST['PageNr'] > 1)
  154.  
  155. $this->PageNr = $_POST['PageNr'] - 1;
  156.  
  157. else
  158.  
  159. $this->PageNr = $this->CountPages();
  160. }
  161.  
  162. } else {
  163.  
  164. # wielkości startowe
  165. $this->PageNr = 1;
  166.  
  167. if (isset($_POST['TmpAnswers']))
  168. $this->TmpAnswers = $_POST['TmpAnswers'];
  169. else
  170. for ($i = 1; $i <= $this->CountPoints(); $i++)
  171. $this->TmpAnswers .= '0';
  172. }
  173.  
  174. #pobierz czy jest odpowiedz
  175. if (isset($_POST['Answers'])) {
  176.  
  177. $this->Answers .= $_POST['Answers'];
  178. }
  179. }
  180.  
  181. #sprawdź odpowiedzi
  182. function CheckAnswers() {
  183.  
  184. $this->CorrectAnswers = 0;
  185. $this->BlankAnswers = 0;
  186.  
  187. for ($i = 1; $i <= $this->CountPoints(); $i++) {
  188. if ($this->TmpAnswers[$i - 1] == $this->Points[$i]->Answer) $this->CorrectAnswers += 1;
  189. if ($this->TmpAnswers[$i - 1] == '0') $this->BlankAnswers += 1;
  190. }
  191.  
  192. $this->WrongAnswers = $this->CountPoints() - ($this->CorrectAnswers + $this->BlankAnswers);
  193.  
  194. $CAP = $this->CorrectAnswers/$this->CountPoints()*1000;
  195. $WAP = $this->WrongAnswers/$this->CountPoints()*1000;
  196. $BAP = $this->BlankAnswers/$this->CountPoints()*1000;
  197.  
  198. $this->CorrectAnswersPercent = round($CAP) / 10;
  199. $this->WrongAnswersPercent = round($WAP) / 10;
  200. $this->BlankAnswersPercent = round($BAP) / 10;
  201. }
  202.  
  203.  
  204. function ViewTest() {
  205.  
  206. $this->TakePost();
  207.  
  208. if (isset($_POST['Check'])) {
  209.  
  210. # formularz wyników
  211.  
  212. $this->CheckAnswers();
  213.  
  214. $out = '<form id ="test" action="" method="post">'.BR;
  215. $out .= '<fieldset>'.BR;
  216. $out .= '<legend>'.$this->TestName.' ['.$this->ResultsName.']</legend>'.BR;
  217. $out .= '<ul id="results">'.BR;
  218.  
  219. $CorrectAnswersLenght = round($this->AnswersPercentLenght*$this->CorrectAnswersPercent/100) + 1;
  220. $WrongAnswersLenght = round($this->AnswersPercentLenght*$this->WrongAnswersPercent/100) + 1;
  221. $BlankAnswersLenght = round($this->AnswersPercentLenght*$this->BlankAnswersPercent/100) + 1;
  222.  
  223. $out .= '<li id="CorrectAnswers" style="border-left:'.$CorrectAnswersLenght.'px solid '.$this->CorrectAnswersColor.'">'.$this->CorrectAnswers.' '.$this->CorrectAnswersName.' ('.$this->CorrectAnswersPercent.'%)</li>'.BR;
  224. $out .= '<li id="WrongAnswers" style="border-left:'.$WrongAnswersLenght.'px solid '.$this->WrongAnswersColor.'">'.$this->WrongAnswers.' '.$this->WrongAnswersName.' ('.$this->WrongAnswersPercent.'%)</li>'.BR;
  225. $out .= '<li id="BlankAnswers" style="border-left:'.$BlankAnswersLenght.'px solid '.$this->BlankAnswersColor.'">'.$this->BlankAnswers.' '.$this->BlankAnswersName.' ('.$this->BlankAnswersPercent.'%)</li>'.BR;
  226. $out .= '</ul>'.BR;
  227. $out .= '<input type="hidden" name="TmpAnswers" value="'.$this->TmpAnswers.'" />'.BR;
  228. $out .= '<input type="hidden" name="Answers" value="Check" />'.BR;
  229. $out .= '<div id="buttons">'.BR;
  230. $out .= '<input type="submit" id="ShowAnswers" name="ShowAnswers" value="'.$this->ShowAnswersButtonName.'" />'.BR;
  231. $out .= '</div>'.BR;
  232. $out .= '</fieldset>'.BR;
  233. $out .= '</form>'.BR;
  234.  
  235. } else {
  236.  
  237. #formularz pytań i odpowiedzi
  238.  
  239. $out = '<form id ="test" action="" method="post">'.BR;
  240. $out .= '<fieldset>'.BR;
  241. $out .= '<legend>'.$this->TestName.' ['.$this->PageName.' '.$this->PageNr.'/'.$this->CountPages().']</legend>'.BR;
  242. $out .= '<ul>'.BR;
  243. $out .= $this->ViewCustomList(($this->PageNr - 1) * $this->PointsPerPage + 1, $this->PointsPerPage);
  244. $out .= '</ul>'.BR;
  245. $out .= '<input type="hidden" name="TmpAnswers" value="'.$this->TmpAnswers.'" />'.BR;
  246. if ($this->Answers != '') $out .= '<input type="hidden" name="Answers" value="'.$this->Answers.'" />'.BR;
  247. $out .= '<input type="hidden" name="PageNr" value="'.$this->PageNr.'" />'.BR;
  248. $out .= '<div id="buttons">'.BR;
  249. if ($this->PageNr > 1) $out .= '<input type="submit" id="PrevPage" name="PrevPage" value="'.$this->PrevPageButtonName.'" />'.BR;
  250. if ($this->PageNr < $this->CountPages()) $out .= '<input type="submit" id="NextPage" name="NextPage" value="'.$this->NextPageButtonName.'" />'.BR;
  251. if (($this->PageNr == $this->CountPages()) && ($this->Answers == '')) $out .= '<input type="submit" id="Check" name="Check" value="'.$this->CheckButtonName.'" />'.BR;
  252. $out .= '</div>'.BR;
  253. $out .= '</fieldset>'.BR;
  254. $out .= '</form>'.BR;
  255. }
  256.  
  257. return $out;
  258. }
  259. }
  260.  
  261.  
  262. ?>

jak to naprawić?
wookieb
Kontynuuj w poprzednim temacie.
http://forum.php.pl/index.php?showtopic=175793&hl=
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.