Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax/js] Prosty skrypt (błąd składni)
Forum PHP.pl > Forum > XML, AJAX > AJAX
uhug
Napisałem bardzo prosty skrypt php, który wyświetla aktualną godzinę:
  1. <?php
  2. echo strftime("%H:%M:%S",time());
  3. ?>

Chciałem, żeby na stronie była zawsze aktualna godzina, więc postanowiłem to ulepszyć za pomocą biblioteki advajax i napisałem taki coś:
Kod
<script type="text/javascript" language="JavaScript">
advAJAX.setDefaultParameters({
onSuccess : function(obj) {
document.getElementById(obj.tag).innerHTML = obj.responseText;
}
});
function advAJAXGet(){advAJAX.get({ tag: "currenttime", url: "time.php" });}
advAJAXGet();
window.setInterval(advAJAXGet,1000);
</script>

No i na końcu dałem w sekcji body:
Kod
<div id="currenttime"></div>

Efektem jest (albo miało być) odświeżanie godziny co sekundę. W ten sposób na stronie zegarek sam się "aktualizuje". Niby wszystko gra, ale na Firefoxie w konsoli wywala takie coś co sekundę:
Cytat
Błąd: błąd składni
Plik źródłowy: http://localhost/time.php?_uniqid=2378948456
Wiersz: 1, Kolumna: 1
Kod źródłowy:
14:29:49^

W niczym to nie przeszkadza, ale zaśmieca ostro konsolę błędów. Na IE i Operze w konsoli nic nie wywala.

Druga sprawa. Napisałem inny skrypt coś jak samoodświeżający się shoutbox.
Kod
<script type="text/javascript" language="JavaScript">
function advAJAXGet(){advAJAX.get({ tag: "messages", url: "ajax.php?id=1" });}
advAJAXGet();
window.setInterval(advAJAXGet,5000);
</script>

Wcześniej dałem oczywiście setDefaultParameters jeśli to ma znaczenie.
Plik php generuje diva (dla każdej wiadomości, wiec jeśli jest 20 wiadomości to 20 takich divów):
Kod
<div class="message">
<a href="#2"><b>Kto</b></a> <i>napisał(a)</i>: Tekst
</div>

Oczywiście te te divy są umieszczane pomiędzy:
Kod
<div id="messages">
[...]
</div>

Skrypt także działa na wszystkich przeglądarkach (IE, FF, Opera), ale w FF w konsoli co 5 sekund widnieje taki błąd:
Cytat
Błąd: niezrozumiała seria znaków po elemencie dokumentu
Plik źródłowy: http://localhost/ajax.php?id=1&_uniqid=2504745365
Wiersz: 4, Kolumna: 1
Kod źródłowy:
<div class="inn_message">^
misiek172
ale po co do tego ajax? przecier zwystarczy ustawić częstotliwość powtarzania funkcji i on będzie co chwile odświeżał funkcje o pokazywał aktualny czas.
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.