Piszę prostą grę przeglądarkową. Sprawa wygląda tak:
mam plik gra.php. W nim jest zawarta cała strona oraz trochę kodu PHP w różnych miejscach, w tym także na samym początku strony, a poza tym jest jeszcze jeden skrypt javascript.
Skrypt javascript jest bardzo prosty, bo większość bazowana jest i tak na PHP. Ten skrypt to proste odliczanie, które pokazuje użytkownikowi kiedy wykonywanie zadania się zakończy.
var timerText = document.getElementById("divForJS").innerHTML;
timerText--;
document.getElementById("divForJS").innerHTML = timerText;
if(timerText==0)
{
//no właśnie, tutaj nie wiem co wpisać
}
setTimeout("changeTimerText()", 1000);//wykonanie tej samej funkcji po sekundzie
Ogólnie, to wszystko w skrócie wygląda tak (na razie nie chcę dawać całego kodu):
-w bazie danych w sql zapisano w postaci timestampu, kiedy wykonywanie zadania ma się skończyć
-na samym początku jest kawałek kodu w PHP, który porównuje obecny timestamp z timestampem w bazie danych. Jeśli obecny timestamp jest większy od tego w bazie danych, to znaczy że czas o którym zadanie w grze miało się skończyć wykonywać już minął - wtedy następuje przekierowanie do innego pliku w PHP, w którym podliczany jest exp, dodawany level itd. Jeśli zaś zadanie jeszcze nie skończyło się wykonywać, to nic się nie dzieje i strona jest normalnie wyświetlana.
Na stronie mam proste odliczanie w javascripcie. Chciałbym, żeby w przypadku gdy odliczanie się zakończy i wartość zmiennej timerText wyniesie 0, strona się odświeżyła, ale tak żęby znów został wykonany kod w PHP zawarty na tej stronie.
Próbowałem już location.reload(true); tak jak opisano tutaj: http://www.w3schools.com/jsref/met_loc_reload.asp
Próbowałem też, za pomocą metody window.location, sprawić by przekierowało użytkownika do pliku php, który z kolei zawiera jedynie przekierowanie z powrotem do gry.
W żadnym z tych dwóch przypadków nie wykonał się kod PHP zawarty na początku storny.
Gdy zaś nacisnę przycisk odśwież w przeglądarce, wcisnę F5 lub po prostu wejdę na stronę z paska adresu, to wszystko jest OK.
Moje pytanie: Jak odświeżyć stronę, żeby zawarty w niej kod PHP wykonał się jeszcze raz?
Jakieś pomysły?