Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MySQL][PHP]Licznik pokazujacy 5 formularzy
Forum PHP.pl > Forum > Przedszkole
Fonev
Witam, kombinuję z napisaniem ankiety zliczającej odpoweidzi.
Chodzi o to, że po wejściu na strone odlicza się nam 30 sekund na pierwsze pytanie które sie pokaze.
Odpowiadamy na nie i jesli nie skonczyl sie czas mozemy przejsc do nastepnego alb odczekac az czas sie skonczy.
Powinno zapisac odpowiedzi np do Sesji w PHP albo bazy (odpowiedzi wielokrotnego wyboru.) i przejsc do nastepnego pytania.
W sumie powinno być 10 takich pytan.
Na koncu porownac wyniki poprawne z baza i zliczyc punkty albo liczyc punkty od razu po przejsciu do nastepnego pytania zeby nie trzymac tego wszystkiego.
Zrobilem poki co takie cos:

  1. if($_SESSION['numer'] <10) - licznik w sesji moich pytań
  2. {
  3. ?>
  4. <span id="sekundy"></span>
  5. <script type="text/javascript">
  6. o = document.getElementById('sekundy')
  7. function odliczaj(o,sek)
  8. {
  9. o.innerHTML=sek
  10. if(sek > 0)
  11. {
  12. set = setTimeout(function(){odliczaj(o,--sek)},1e3)
  13. }
  14. if (sek == 0)
  15. {
  16. div = document.getElementById('hide');
  17. div.style.display = 'block';
  18. }}
  19. odliczaj(document.getElementById('sekundy'), 30)
  20. </script>
  21. <div id="hide" style="display:none;">
  22. // tu chcialem dac :
  23. header("Location: index.php");
  24. $_SESSION['numer']++;
  25. // aby po skonczeniu sie czasu przechodzilo do nastepnego pytania ale nie dziala wtedy nic. Java nie dziala.
  26. </div>
  27. <?php
  28. }
  29. else
  30. {
  31. //tu bym obliczyl wyniki zapisal do bazy wyszedl z ankiety.
  32. header("Location: wynik.php");
  33.  
  34. }
  35. ?>
  36.  



Javy nie znam więc nie wiem za bardzo jak sobie z tym poradzić.
Czy mogę wkomponować w tą funkcje Javy do odliczania czasu kod PHP. Tak aby mi wylosowal z bazy pytania i je pokazal, nastepnie przy koncu czasu zapisal odpowiedzi albo po nacisnieciu przyciska? W tym divie po zakonczeniu co pokazuje dziala tylko html..
Proszę o jakieś wskazówki i podpowiedzi.
AJAXA wolałbym nie wplątywać już tutaj jeśli nie trzeba.
Pyton_000
Fonev
Macie jakąś wskazówkę jak to rozwiązać?
luki100011
Na przykład za pomocą Ajaxa, pobierasz kolejne pytania i wyświetlasz.
Inna opcja wyświetlasz wszystkie pytania jednak część ukrywasz, po upłynięciu czasu odsłaniasz kolejne pytanie.
Fonev
Dobrze, ale jak próbuje zedytować kod javyscript aby pokazywała mi php to nie działa.
wstawiłem w javascript

  1. if (sek == 0)
  2. {
  3. div = document.getElementById('hide');
  4. div.style.display = 'block';


i działa tylko jeśli w bloku jest html.

miało zapisać odpowiedzi, zwięklszyć licznik o 1 ( max 10), nastepnie odswierzyc strone aby od nowa pokazalo pytanie.
ale przy nawet zwyklym echo 'cokolwiek'; nie działa juz odliczanie czasu.

Pytanie o estetyke czy można zwiększyć te cyfry co sięodlicają bo są zwykłą czcionką i rozmiarem 12. a mi zalezy na dobrze widocznym odliczaniu.
luki100011
Piszesz o linii 23 i 24 ? tam gdzie chcesz "wcisnąć" element PHP?
Fonev
Tak zgadza się tam żeby wywołało php. No chyba, że ma ktoś inny pomysł żeby po odliczeniu czasu wykonało kod php i odświerzyło tą strone ( i odnowa)
10 odliczeń muszę zrealizować.
luki100011
Tak nie wywołasz PHP w javascripcie. Dodaj tam wywołanie PHP za pomocą na przykłada ajaxa, lub użyj metody z javascriptu do przejścia na inna stronę (window.location.href).
Fonev
Stworzyłem podobnie
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <title>E-lerning Python</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <link href="style.css" rel="stylesheet" type="text/css" />
  6. </head>
  7. <script type="text/javascript">
  8. o = document.getElementById('sekundy')
  9. function odliczaj(o,sek)
  10. {
  11. o.innerHTML=sek
  12. if(sek > 0)
  13. {
  14. set = setTimeout(function(){odliczaj(o,--sek)},1e3)
  15. }
  16. if (sek == 0)
  17. {
  18. document.formD.a.disabled=true;
  19. document.formD.b.disabled=true;
  20. document.formD.c.disabled=true;
  21. document.formD.d.disabled=true;
  22. div = document.getElementById('hide');
  23. div.style.display = 'block';
  24. }
  25. }
  26. </script>
  27. <body bgcolor="#FFFFFF" style="leftmargin=0px; topmargin=0px; marginwidth=0px; marginheight=0px">
  28. <?php
  29. session_start();
  30. mysql_connect("localhost","root","");
  31. mysql_select_db("e-lerning");
  32. if(empty($_SESSION["zalogowany"])) //sprawdzamy czy istnieje juz sesja
  33. {
  34. $_SESSION["zalogowany"]=0;
  35. header("Location: index.php");
  36. }
  37. else
  38. {
  39. $login = $_SESSION["login"];
  40. ?>
  41. <table style="width=1001px; height=1200px;" border="0" align="center" cellpadding="0" cellspacing="0" id="Table_01">
  42. <tr>
  43. <td colspan="4">
  44. <div id="logo">
  45. <div><a href="index.php"><img src="images/mainlogo.png" alt="logo" width="103" height="62" border="0" style="float:left; padding-left:90px; padding-top: 30px; padding-right: 20px; " longdesc="index.php" /></a></div>
  46. <div class="company-name">E-Python<span class="content">Egzamin </span></div></div>
  47. </td></tr><tr>
  48. <td rowspan="3"><div id="content-main">
  49. <div class="title2">Testy sprawdzające wiedzę:</div>
  50. <div class="content">
  51. <?php
  52. $wynik = mysql_query("SELECT imie, nazwisko FROM users WHERE login = '$login'");
  53. $wiersz = mysql_fetch_array($wynik);
  54. echo 'Wykonujący: '.$_SESSION["login"].' ('.$wiersz['imie'].' '.$wiersz['nazwisko'].' )<br>';
  55. if($_SESSION['numer'] <=9)
  56. {
  57. //aktualny kurs
  58. $wynik1 = mysql_query("SELECT aktualny_kurs FROM users WHERE login = '$login'");
  59. $wiersz1 = mysql_fetch_array($wynik1);
  60. $kurs = $wiersz1['aktualny_kurs'];
  61. //odliczanie 10 pytan
  62. $wynik2 = mysql_query("SELECT * FROM pytania WHERE nr_kursu = '$kurs'");
  63. $pula = mysql_num_rows($wynik2);
  64. $pytanie = rand(1,$pula);
  65. // losowanie pytania
  66.  
  67. $r = mysql_fetch_assoc($wynik2);
  68. echo '<Form name="formD" action="egzamin.php" method="POST"><table><tr bgcolor="#dadada"><td colspan="2">Pytanie</td></tr>';
  69. echo '<tr><td colspan="2"><input disabled="disabled" type="text" name="pytanie" size="80" value="'.$r['Pytanie'].'"></td></tr>';
  70. echo '<tr bgcolor="#dadada"><td colspan="2">Odpowiedz A</td></tr>';
  71. echo '<tr><td><input disabled="disabled" type="text" name="odpA" size="50" value="'.$r['OdpA'].'"></td><td><input type="checkbox" name="a" value="1"></td></tr>';
  72. echo '<tr bgcolor="#dadada"><td colspan="2">Odpowiedz B</td></tr>';
  73. echo '<tr><td><input disabled="disabled" type="text" name="odpB" size="50" value="'.$r['OdpB'].'"></td><td><input type="checkbox" name="b" value="1"></td></tr>';
  74. echo '<tr bgcolor="#dadada"><td colspan="2">Odpowiedz C</td></tr>';
  75. echo '<tr><td><input disabled="disabled" type="text" name="odpC" size="50" value="'.$r['OdpC'].'"></td><td><input type="checkbox" name="c" value="1"></td></tr>';
  76. echo '<tr bgcolor="#dadada"><td colspan="2">Odpowiedz D</td></tr>';
  77. echo '<tr><td><input disabled="disabled" type="text" name="odpD" size="50" value="'.$r['OdpD'].'"></td><td><input type="checkbox" name="d" value="1"></td></tr ';
  78. echo '</table>';
  79. ?>
  80. Czas: <span id="sekundy" style="color: red; font-family: Courier New; font-size: large" ></span>
  81.  
  82. <script type="text/javascript">
  83. odliczaj(document.getElementById('sekundy'), 15)
  84.  
  85. <div id="hide" style="display:none;">
  86.  
  87. <font color="red">Czas sie skonczyl!</font>
  88. <input type="submit" name="nastepne" value="Następne" ><div id="wyniki"></form></div>
  89. </div>
  90.  
  91. <?php
  92. }
  93. else
  94. {
  95. $_SESSION['numer']==0;
  96. header("Location: wynik.php");
  97. }
  98. if(isset($_POST['nastepne']))
  99. {
  100. $_SESSION['numer']++;
  101. header("Location: egzamin.php");
  102. }
  103.  
  104. ?>
  105. </div>
  106. </div></td>
  107. </tr>
  108. <?php
  109. }
  110. ?>
  111. </body>
  112. </html>




Jakotako działa i jestem zadowolony z tego. Tylko mam pytanie jak zapisac do tablicy moj wynik wszystkich pytan albo ich id chociaz gdzie nr_kuru = $kurs. Następnie chcialbym losowo wybierac te pytania stamtad i wyswietlac w moim formularzu.

  1. wynik2 = mysql_query("SELECT * FROM pytania WHERE nr_kursu = '$kurs'");
  2. $pula = mysql_num_rows($wynik2);
  3. $pytanie = rand(1,$pula);


Proszę o pomoc z jakas tablica indeksowana albo cokolwiek.
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.