No to w ogóle bez sensu masz to napisane. Z takim podejściem to wywal całkiem JS i odświeżaj przy pomocy HTMLa.
Przecież takie rozwiązanie przeładowuje Ci całą stronę. Co w ogóle nie jest potrzebne, a wręcz przeszkadza. Wyobraź sobie, że czytasz coś i zjechałeś scrolem w dół, nagle bez powodu odświeża ci się strona i znów musisz szukać tego co czytałeś.
Dlatego chcę tylko ten konkretny fragment strony odświeżyć.
Szczególnie, że tma jeszcze jest player na stronie,a jak będzie mi się co minutę odświeżała strona to grać przestanie.
No to musisz to przepisać chociaż na odświeżanie danych przy pomocy ajaxa, inaczej nie da rady.
Chociaż bo najlepiej zrobić to przy pomocy webservera i web socketa, ale to sobie odpuść moim zdaniem.
A jak się używa mysqla w js jakimkolwiek?
Nie używa się. Dane w formie JSON musisz zwrócić sobie odpowiednim skryptem w PHP który odczyta dane z bazy. JS nie ma i mieć nie może bezpośredniego dostępu do bazy bo każdy użytkownik mógłby w niej grzebać. Dlatego ukrywa się ją za serwerem WWW.
Poczytaj czym jest ajax i jak działa bo ewidentnie nie masz o tym pojęcia.
https://www.w3schools.com/js/js_ajax_intro.asp
EDIT:
Przy czym zamiast XMLHttpRequest użyj FetchAPI (https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) bo jest prostsze.
Nie mam pojęcia bo nei potrzebowałem i raczej nie potrzebuję nadal mieć pojęcia co to za rpzeciążony zgrzyt.
Wolałbym to zrobić w taki sposób, w jaki powiedziałem. Da się tak, czy muszę czytać o tym krówsku ?
Nie wiem bo nie umiem sobie wyobrazić, albo nie rozumiem jak chciałbyś to zrobić. Poza tym nie wiem w czym Ci tak ajax przeszkadza i dlaczego Twoim zdaniem jest duży i ciężki. Dla mnie to co chcesz zrobić jest do zrobienia w 20 linijkach JSa, ale jeśli to jest dla Ciebie zbyt dużo to nie wiem jakim cudem korzystasz z tego forum, a co dopiero takiego FB czy Onetu, a gdzie tam Google gdzie wszędzie są websockety.
Pobieram sobie php wszystkie pola z tabelki w bazie danych, bo akurat wszystkie są potrzebne, while je listuję i wrzucam w zmienną, a potem wyswietlam. I chcę to odświeżać. Cały skrypt.
Moim zdaniem przez swoją niewiedzę i ignorancję w tym temacie masz skrajnie złe wyobrażenie o tym czym jest AJAX, ale jak chcesz unikaj go dalej.
Jak to wyświetlasz? W czym? JS czy PHP. Zresztą co ja tracę czas. Idź do wróżbity Macieja tylko on jest w stanie pomóc bez kodu źródłowego.
Jak przypomnisz, w jaki sposób się wrzucało kod, tak, żeby dalo się go czytać, to wrzucę. Niewidomy jestem więc nie używam formatowania.
Możesz wkleić na jakąś wklejkę i dać linka tutaj, albo możesz przed kodem dać ``` i za kodem to samo, czyli coś takiego:
```
Twoj kod tutaj
```
Ogólnie na forum jest edytor wykorzystujący składnie Mark Down, warto się jej nauczyć bo się przydaje do wielu rzeczy. Jedyna różnica jest taka, że nie wszystkie elementy tej składni są obsługiwane bądź włączone w edytorze.
Niedostępny dla niewidomych chyba jest. Accessibility to w ogóle wszędzie leży…
echo '
<div id="lista">
';
$q=$dbx->query("select * from `messages` where `status` = 0 order by `id` asc");
if($q->num_rows == 0) echo '<span style="color: red;">Nie ma żadnych zamówień ani pozdrowień</span>';
while($r=$q->fetch_assoc())
{
$ta .= ''.$r['nick'].'
<br/>
'.selecttime($r['time']).'
<br/>
'.$r['message'].'
<br/>
><a href="index.php?field=delete&id='.$r['id'].'">Usuń</a><br/.';
}
echo $ta.'
</div>';
Na podstawie fragmentu niewiele da się powiedzieć. Nie wiem jak jest generowana reszta danej podstrony oraz gdzie ten kog jest uruchomiony. To osobny plik czy może fragment jakiegoś większego skryptu.
No nie mów, że mam CI wrzucać całą stronę?
Wszystko jest w jednym indeksie.
Człowieku ktoś chcę ci pomóc a ty jeszcze pretensje ? Masz tak bublowaty kod,że możesz być spokojny nikomu o zdrowych zmysłach on się nie przyda
Zapytałem tylkoo, czy mam wrzucić kod całej strony. Gdzieś tu widzisz pretensje?
No to wrzuć cały kod odpowiedzialny za ten twój czat.
NO to wrzuciłem. Nic więcej nie ma tam.
No chyba, że
<script src="http://code.jquery.com/jquery-latest.js">
<script type="text/javascript">
setInterval(refreshfield, 5000);
function refreshfield()
{
$('#content').load('http://radiowyczes.pl/?fields=list #lista');
}
</script>
Czy ty uwazasz, ze to, co widzisz w przegladarce to PHP? I ze PHP dziala na przegladarce?
Na razie wydaje mi sie, ze nie masz pojecia o trzy tierowym podejsciu, ktore probujesz zaimplementowac. PHP to technologia serwerowa, w Twoim przypadku PHP dynamicznie generuje strone HTML i skrypt JS, ktore jednak pozniej dzialaja bez udzialu PHP na przegladarce.
Troche dziwnie sie czuje piszac takie rzeczy, ale z calej tej dyskusji mam wrazenie, ze nie calkiem wiesz, co chcesz osiagnac i jak wyglada komunikacja pomiedzy warstwa UI, serwerem aplikacji i serwera bazy danych.
I Ajax jest najlzejszym i najszybszym sposobem na pozyskanie danych na stronie internetowej z twojego serwera.
@Fizyda, zgoda, ale to wyglada i tak na zabawe z kodem, wiec lepiej uczyc sie ‘normalnych’ zasad, a interval to zlo;) Podany przeze mnie link pieknie podaje zasady dla poczatkujacych, no ale trzeba miec chec, aby sie czegos nauczyc.
W takim układzie nie wrzucaj bo nie chcę dostać zawału, nie będę miał też czasu przekopywać się przez taki kod.
Raczej tego nie zrobisz tak jak chcesz, chyba że w tym index masz coś na wzór kontrolerów ze wzorca MVC i w case’ach lub if’ach zwracasz tylko fragment kodu html, a sterujesz nimi przy pomocy parametrów get co może sugerować link do jakiego się odwołujesz w JS:
http://radiowyczes.pl/?fields=list
W takim przypadku będzie się to dało zrobić i powinien Ci obecny kod działać. Problemem zapewne jest adres z jakiego pobierasz dane. Nie mam pojęcia skąd w środku adresu masz spację i czemu w ogóle odwołujesz się do kotwicy. Chodzi o tą linijkę:
$('#content').load('http://radiowyczes.pl/?fields=list #lista');
Poza tym powinieneś w takim przypadku skorzystać z narzędzi developerskich w przeglądarce i zobaczyć co masz w odpowiedzi z serwera i czy w ogóle pobierasz dane bez błędów. Takie informacje znajdziesz w zakładce sieć.
@angh Tak z ciekawości może będziesz wiedział bo nigdy tego w ten sposób nie robiłem i nie wiem czy dobrze pamiętam. W przypadku zwykłego serwera WWW, powiedzmy konfiguracja jak na każdym hostingu shared plus parser PHP. Oczywiście serwer obsługuje HTTP/2. Da się postawić webserver? Bo jeśli dobrze pamiętam to chyba szukałem na ten temat info, ale wymaga to dodatkowego moda do serwera WWW i dodatkowej konfiguracji tak by powiedzmy skrypt w webserver.php działał jako web server do którego możesz się połączyć przez web socket.
Nie mówię tutaj o odpalaniu skryptu który jest web serverem i obsługuje we własnym zakresie HTTP/2 czy to w pythonie, node czy php. Mówię tutaj o takim klasycznym serwerze apache/nginx + php + skrypt php który nie nasłuchuje we własnym zakresie na socketach.