Cześć,
mam taki prosty kodzik:
<div class='right' id='right' onchange='test();'>
kod php
</div>
<script type='text/javascript'>
function test() {
$("#right").html(data);
setTimeout('test()', 1000);
}
window.onload = test();
</script>
I Pytanie jak to zmusić aby div był odświeżany co sekundę? Bo to mi nie działa ;/
konrados
8.07.2012, 15:30:35
Jeśli chodzi o js to jest ok. Ale jeśli Ty sądzisz, że tu:
<div class='right' id='right' onchange='test();'>
kod php
</div>
Za każdym razem od nowa wykona się php to jest w błędzie. Do tego służy ajax.
A najprościej z jquery:
http://api.jquery.com/load/
Więc jak ty wykonać by ten kod php się wqykonywał co tę sekundę? Bo w seci wszędzie pisze że tak a ja już nie wiem nawet jak do tego się zabrać.
konrados
8.07.2012, 15:32:46
Przecież Ci napisałem: AJAX i nawet linka dałem.
Cytat
Bo w seci wszędzie pisze że tak
Gdzie takie bzdury niby piszą?
PHP działa po stronie serwera, gdy już przekaże treść do przeglądarki, jego zadanie się definitywnie kończy a wkracza ewentualnie javascript.
Wiem, zobaczyłem link jak już napisałem.
Teraz mam taki kod:
<script type='text/javascript'> function test() {
$('#right').load('footer.php #right');
setTimeout('test()', 1000);
}
window.onload = test();
i nadal nie działa ;/
z samą linijką
$('#right').load('footer.php #right');
też próbowałem
konrados
8.07.2012, 15:48:13
Po pierwsze wystarczy samo $('#right').load('footer.php'). Bo drugie widzę, że 'right' to klasa więc powinno być $('.right').load('footer.php'). Po trzecie - zaincludowałeś Ty jquery? Robimy np. tak:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
edit: a widzę, że right to i klasa i id, więc drugi punkt odpada.
Ok dodałem tą linijkę:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
i to :
$('#right').load('footer.php #right');
coś zaczęło się dzaić ponieważ cały pasek mi zniknął ale nie widać żadnych danych.
konrados
8.07.2012, 15:59:14
Mam dziwne wrażenie, że czytasz tak mniej więcej połowę postu... ma być:
$('#right').load('footer.php');//wyrzucone drugie #right
Poza tym włącz konsolę (F12 w chrome, firebug w FF) i zobacz czy nie ma jakichś błędów. No i upewnij się, że 'footer.php' znajduje się w tym samym folderze w którym masz ten cały skrypt.
Warning: mysql_query() [function.mysql-query]: Access denied for user 'user'
tylko że kod działał zanim dodałem do niego jquery.
Wszystko jest dobrze i znajduje się w tym samym folderze.
konrados
8.07.2012, 16:04:23
To nie ma związku.
Rozumiem, że taka treść pojawia się w #right czyli błąd jest w footer.php tak? W takim razie no... napraw ten błąd.
Dobra już wszystko wczytywane jest poprawnie lecz nie ma tego odświeżania.
<script type='text/javascript'>
$("#right").load('r.php');
</script>
a wszystko teraz znajduje się w pliku r.php to co chcę odświeżać
konrados
8.07.2012, 16:11:43
No ale gdzie tu masz jakieś setTimeout? Ma być prawie tak jak było:
<script type='text/javascript'>
function test() {
$('#right').load('r.php');
setTimeout('test()', 1000);
}
window.onload = test();
</script>
właśnie tak zrobiłem nadal nic ;/
Jest działa! wielkie dzięki zamiast window napisałem windows. Ale czapa :x
konrados
8.07.2012, 16:19:28
Spoko.
Co do 'windows' zamiast 'window' konsola błędów by to złapała, więc się z nią zaprzyjaźnij:)
Dobra ostatnie pytanko słyszałemże w jquery trzeba osobno ustawić kodowanie? Jak to zrobić?
dodałem coś takiego:
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded; charset=windows-1250",
});
Nadal mam kwadraty.
konrados
8.07.2012, 17:54:21
Chyba powinno wystarczyć, że obie strony (ta na której jest skrypt i ta ładowana) mają to samo kodowanie. Najlepiej utf-8.
Właśnie mają te same kodowanie i z tego wychodzi że nie działa.
konrados
8.07.2012, 18:02:27
A to już nie wiem, może kto inny się wypowie.
Nigdy nie miałem takich problemów. Może zamień kodowanie na utf-8. Ponadto upewnij się, że nie tylko zapisujesz jako utf-8 ale masz to też określone w head dokumentu:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Jedynie mogę dać coś takiego:
$lang_online_users = iconv('WINDOWS-1250', 'UTF-8', $lang_online_users);
i działa.
Kodowanie zmieniłem wszędzie na utf i tak to samo było ale można wymusić mu zmianę kodowania poprzez php.
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.