Mam taką zagwostkę. Mianowicie mam w js napisany pewien quiz.
Funkcja pobierająca pytania odwołuje się do pliku php poprzez funkcję httpRequest:
function pobierzPytanie() { httpRequest('pytania.php'); }
, którą napisałem w taki sposób:
function httpRequest(uri) {js=document.createElement('script'); js.src=uri; js.type='text/javascript'; oDoc=document.getElementsByTagName('head')[0]; oDoc.appendChild(js); }
Plik pytania.php to nic innego jak pobranie pytań z bazy i uzupełnienie zmiennych:
<?php $zapytanie="SELECT * FROM pytania ORDER BY RAND() LIMIT 1"; echo ' question[0] = \''.$wiersz[pytanie].'\'; question[1] = \''.$wiersz[a].'\'; question[2] = \''.$wiersz[b].'\'; question[3] = \''.$wiersz[c].'\'; question[4] = \''.$wiersz[d].'\'; pokazPytanie();'; ?>
Chcę pobierać jedno losowe pytanie z bazy i wyświetlić go funkcją pokazPytanie(), która wygląda tak:
function pokazPytanie() { x=document.getElementById('question'); if (x) x.innerHTML=question[0]; for (i=1;i<question.length;i++) tu kod wysiwetlajacy odpowiedzi, kliknięcie na odpowiedz wywołuje funckję sprawdzającą czy odp. jest poprawna, jeśli tak to ponownie uruchamia się funkcja pobierzPytanie(); }
Funkcja pobierzPytanie uruchomiana jest na window.onload i wówczas wszystko działa ok, tj. otrzymuję pierwsze losowo wybrane pytanie. Gdy udzielam poprawnej odpowiedzi, następuję kolejne wylosowanie pytanie, natomiast gdy udzielę poprawnej odpowiedzi na drugie pytanie to ponownie otrzymuję to poprzednie, i tak na przemian. Ewentualnie drugie pytanie powtarza się do samego końca.
Nie wierzę że akurat taki zbieg okoliczności występuję że losuje mi tak te pytania, że się powtarzają. Wygląda mi to na jakiś problem w pliku pytania.php. Tak jakby to zapytanie nie wykonywało się za każdym razem, a chyba powinno zawsze kiedy wywołuję funckję pobierzPytanie.
Jakieś podpowiedzi?