Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odświeżanie danych z wyszukiwarki php z bazy danych
Forum PHP.pl > Forum > XML, AJAX
martin1978
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
LowiczakPL
nie timeout a setinterval i nie w funkcji UpdateList a poza nią wink.gif

setInterval(UpdateList, 1000); - 1000 to 1 sekunda

martin1978
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:
  1.  
  2. <body onload="UpdateList();">
  3.  
  4. A tutaj wyswietlane sa pobrane dane z Bazy Danych w formie tabeli.
  5.  
  6. </body>
  7.  


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. )

  1.  
  2. <body onload="UpdateList();">
  3.  
  4. <div id="tabelka">
  5.  
  6. A tutaj wyswietlane sa pobrane dane z Bazy Danych w formie tabeli.
  7.  
  8. </div>
  9.  
  10.  
  11. </body>
  12.  
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-2024 Invision Power Services, Inc.