![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 23.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Celem jest odświeżanie danych (interwał np. 2 min.), które wyszukuję wyszukiwarką php z bazy danych. Wygląda to tak: W formularzu w polu select input wybieram dla like w zapytaniu zmienną np. model samochodu (AUDI). Po wybraniu modelu auta wyświetlają mi się w formie tabeli wszystkie AUDI i do tego parametry tego auta. I do tego momentu wyszystko działa. W momencie gdy użyłem takiego skryptu: CODE function UpdateList() { if (window.XMLHttpRequest) { //wywolanie obiektu XMLHttpRequest dla wszystkich przeglądarek oprócz IE xmlhttp=new XMLHttpRequest(); } else { // a to jest wywolanie obiektu dla IE xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } // funkcja function() opracowuje wynik odpowiedzi obiektu zapytania HTTP // funkcja na początku sprawdza stan zapytania. Jeżeli status będzie miał wartość 4, oznacza to, // że udało się pobrać pełną odpowiedź z serwera i można kontynuować jej przetwarzanie. // Następnie należy sprawdzić kod odpowiedzi serwera HTTP. // Jeśli została zwrócona prawidłowa odpowiedź tzn. wartość 200 oznacza to, że zapytanie odnalazło szukaną stronę. // Na końcu funkcja pobiera wynik odpowiedzi zapytania HTTP // i można przystąpić do przetwarzania danych z serwera // przy pomocy responseText – opcja ta zwróci odpowiedź serwera jako ciąg znakowy. xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById('tabelka').innerHTML = xmlhttp.responseText; } } var tm = new Date().getTime(); // Wykonanie zapytania // otwiera obiekt XMLHttp z podanym URL-em, parameter 3 jest jako "true" oznacza pobieranie wartości asynchronicznie //xmlhttp.open("GET","parametry.php",true); xmlhttp.open("GET","parametry.php?tm="+tm,true); // wysyła żądanie HTTP do serwera xmlhttp.send(null); // Funkcja setTimeout: // Przyjmuje ona następujące parametry: "nazwaFunkcji", która ma zastać wykonana po upływie określonego czasu, // czas zwłoki jest to okres opóźnienia wykonania funkcji podawany w milisekundach. setTimeout("UpdateList()", 90000); } Po wybraniu modelu auta w wyszukiwarce dane z bazdy danych pojawiają sie na ok 1 s. i znikają. Tabelkę w której wyświetlane są wyniki z wyszukiwania są w zawarte w div-ie z id=tabelka Nie mam juz pomyslow jak mam zrobic, zeby po wyszukaniu danych z bazy danych parametry auta odswiezaly sie co dany interwal np. 2 min.. Z góry dziekuję za podpowiedzi P.S. skrypt update.js działa i jest poprawy, bo mam go na innej stronie , ale bez wyszukiwarki. Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
nie timeout a setinterval i nie w funkcji UpdateList a poza nią (IMG:style_emoticons/default/wink.gif)
setInterval(UpdateList, 1000); - 1000 to 1 sekunda |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 0 Dołączył: 23.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
LowiczakPL napisał: "nie w funkcji UpdateList a poza nią"
W skrypcie update.js przeniosłem poza funkcję setInterval(UpdateList(), 120000); i niestety nie odświeża mi wybranych danych. Tzn. po odfiltrowaniu dane pojawiają się, ale po zadanym czasie nie odświeżają się. W wykonawczym skrypcie wyglada to tak w skrócie:
Natomiast po użyciu div-a wszystko wykonuje się, ale pobrane dane w formie tabeli pojawiaja się na ok. 1s i znikają. Mimo, że setInterval jest ustawiony na czas np. 2 min. ( 120000 ms. )
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:49 |