Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Jak odświeżyć wyniki zapytania mysql bez przeładowywania strony
Forum PHP.pl > Forum > Przedszkole
erjot90
Pytanie takie jak w temacie...

Da się tak w ogóle? chodzi mi dokładnie o skrypt który bez przeładowywania strony wyświetli komunikat "Masz nowa wiadomość"
nospor
uzyj AJAXa
erjot90
a mógłbym się dowiedzieć jak to zrobić?

może jakieś linki, bo ja AJAXa w ogóle nie znam sad.gif
Spawnm
Jest przyklejony temat z linkami do kursów .
erjot90
mam takie cos:
  1. <script language="javascript" type="text/javascript">
  2. <!--
  3. //Browser Support Code
  4. function ajaxFunction(){
  5.      var ajaxRequest;  // The variable that makes Ajax possible!
  6.      
  7.      try{
  8.            // Opera 8.0+, Firefox, Safari
  9.            ajaxRequest = new XMLHttpRequest();
  10.      } catch (e){
  11.            // Internet Explorer Browsers
  12.            try{
  13.                  ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  14.            } catch (e) {
  15.                  try{
  16.                        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  17.  
  18.                  } catch (e){
  19.                        // Something went wrong
  20.                        alert("Your browser broke!");
  21.                        return false;
  22.                  }
  23.            }
  24.      }
  25.      // Create a function that will receive data sent from the server
  26.      ajaxRequest.onreadystatechange = function(){
  27.            if(ajaxRequest.readyState == 4){
  28.                  var ajaxDisplay = document.getElementById('ajaxDiv');
  29.                  ajaxDisplay.innerHTML = ajaxRequest.responseText;
  30.            }
  31.      }
  32.      ajaxRequest.open("HTTP", "sprawdz_poczte.php", true);
  33.      ajaxRequest.send(null);
  34.      
  35.      setTimeout("ajaxFunction()", 60000);
  36. }
  37.  
  38. //-->
  39. </script>
  40. <div id="ajaxDiv"></div>


i PHP
  1. <?php
  2.  
  3. $mysqli = lacz_db();
  4. $mysqli->query("select * from odebrane where przeczytane='0' and id_odbiorcy='$_SESSION[prawid_uzyt]'");
  5.  
  6. if($mysqli->affected_rows == 0)
  7. {
  8.     echo 0;
  9. }
  10. else
  11. {
  12.     echo 1;
  13. }
  14. ?>


i to nie działa :/ pomóżcie smile.gif
nospor
Cytat
i to nie działa
Czyli co? Trudno napisac czym objawia sie to nie dzialanie?

ps: poza tym nigdzie nie wywolujesz ajaxFunction() wiec trudno by juz na tym etapie cos dzialalo tongue.gif
erjot90
kurde no tak... biggrin.gif
wywołałem ją tak...
  1. <span onClick="ajaxFunction()">a</span>
i działa
ale mam teraz pytanie czy da się ją wywołać bez potrzeby kliknięcia(utworzenia span)?
Czadus
Ja korzystam z biblioteki jQuery Ajax, którą znajdziesz w tym miejscu: http://docs.jquery.com/Ajax
nospor
Cytat
ale mam teraz pytanie czy da się ją wywołać bez potrzeby kliknięcia(utworzenia span)?

oczywiscie.
  1. <div id="ajaxDiv"></div>
  2. <script type="text/javascript">
  3. ajaxFunction();
Czadus
Cytat(erjot90 @ 20.07.2009, 10:40:01 ) *
kurde no tak... biggrin.gif
wywołałem ją tak...
  1. <span onClick="ajaxFunction()">a</span>
i działa
ale mam teraz pytanie czy da się ją wywołać bez potrzeby kliknięcia(utworzenia span)?


napisz może tak:

Kod
<span onload="ajaxFunction()">a</span>


natomiast w kodzie tej funkcji np.
Kod
ajaxFunction(){
       //definicja twojej funkcji

       setTimeout(function(){ ajaxFunction(); },5000);
  }


i co każde 5 sekund wywołana zostanie ta funkcja dzięki parametrowi 5000.....

Może da się to prościej, ja napisałem na tyle na ile potrafi. PS. Pisane od reki
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.