Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczne pobieranie danych w tle
Forum PHP.pl > Forum > XML, AJAX
kkuubbaa88
witam

bardzo proszę o pomoc w moim problemie, poniewaz czas mnie strasznie goni. nie moge znalezc w jaki sposob zrobic, aby dane byly ciagle pobieranie w tle i wyswietlane za pomoca ajaxa. mam kod w ktorym wysylane sa dane POST do pliku php a on juz dodaje do bazy. problem w tym, ze nie wiem jak zrobic, aby dane byly caly czas na bierzaco wyswietlane u gory... cos ala okienko gg... na dole sie dodaje, a u góry powinno sie wyswietlac...

dziekuje i pozdrawiam

obecnie mam taki kod AJAX:

Kod
   <script language="javascript">
   var XMLHttpRequestObject = false;
   if (window.XMLHttpRequest) {
   XMLHttpRequestObject = new XMLHttpRequest();
   } else if (window.ActiveXObject){
   XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
   }
   function getData(dataSource, divID, data)
   {
   if(XMLHttpRequestObject){
   var obj = document.getElementById(divID);
   XMLHttpRequestObject.open("POST", dataSource);
   XMLHttpRequestObject.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
   XMLHttpRequestObject.onreadystatechange = function()
   {
   if (XMLHttpRequestObject.readyState == 4 &&
   XMLHttpRequestObject.status == 200) {
   obj.innerHTML = XMLHttpRequestObject.responseText;
   }
   }
   XMLHttpRequestObject.send("data=" + data);
   }
   }
   </script>
  
  
   <form>
   <input type="button" value="Pobierz wiadomość 1" onclick="getData('data.php', 'targetDiv', 1)">
   <input type="button" value="Pobierz wiadomość 2" onclick="getData('data.php', 'targetDiv', 2)">
   </form>
   <Div id="targetDiv">
   <p>Pobrana wiadomość pokaże się tutaj.</p>
   </div>



plik data.php

Kod
   <?
   if ($_POST["data"] == "1"){
   $dbhost = 'localhost';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'bazabaza';
  
   $dbc = @mysql_connect($dbhost, $dbuser, $dbpass) or die ('Nie moge połaczyc sie z Mysql');
   mysql_select_db ($dbname) or die ('Nie moge wybrać bazy');
  
   mysql_query("SET NAMES utf8");
   $wynik = mysql_query("select id from baza where nazwa='cos'");
   $zmienne = mysql_fetch_array($wynik, MYSQL_ASSOC);
   echo $zmienne['id'];
   }
   if ($_POST["data"] == "2"){
   echo "wartość 2";
   }
   ?>
singles
W PHPie zrób sobie plik np. zwrocDane.php. W jaki sposób zwracać? To zależy, co chcesz zwrócić - jeśli tylko jakiś napis czy liczbę to zwykłe echo wystarczy. Jeśli bardziej skomplikowane dane, to polecam JSON. Poczytaj w manualu PHP i w sieci.

W JS piszesz sobie funkcję refreshData(). Wewnątrz niej masz żądanie AJAXa (podobnie jak w kodzie który wkleiłeś) do pliku zwrocDane.php. Z tymi danymi możesz sobie potem zrobić co chcesz - wstawić do jakiegoś pola, wyrzucić alertem, jak Ci wygodnie. Aby pobieranie danych odbywało się co określony czas, to skorzystaj w JS z setInterval.

PS. Polecam zastosowanie jakiejś zewnętrznej biblioteki do obsługi AJAXa - np advAJAX.
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.