Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][MSSQL][PHP] Wyświetlanie statusu danych w bazie
Forum PHP.pl > Forum > Przedszkole
adi456
Witam

Nie znam się na js i ciężko mi ruszyć cokolwiek w tym temacie, mam taki kod

  1. if($punktid==18 or $punktid==17 or $punktid==16 or $punktid==13 or $punktid==7 or $punktid==14 or $punktid==4 or $punktid==6 or $punktid==10 or $punktid==3 or $punktid==2){
  2.  
  3. if(empty($_SESSION["utarg_pcmarket"])) {
  4. if(empty($date)){
  5. $date_pcmarket_od="$data 18:50:00";
  6. $date_pcmarket_do="$data 21:30:00";
  7. } else {
  8. $date_pcmarket_od="$date 18:50:00";
  9. $date_pcmarket_do="$date 21:30:00";
  10. };
  11. $server = 'xxx';
  12. $user="xxx";
  13. $pass="xxx";
  14. $db="mdm_baza";
  15. $link = mssql_connect($server, $user, $pass);
  16.  
  17.  
  18. if ($punktid==18) $id_pcmarkt=26;
  19. elseif ($punktid==17) $id_pcmarkt=1;
  20. elseif ($punktid==16) $id_pcmarkt=20;
  21. elseif ($punktid==13) $id_pcmarkt=17;
  22. elseif ($punktid==7) $id_pcmarkt=3;
  23. elseif ($punktid==14) $id_pcmarkt=10;
  24. elseif ($punktid==4) $id_pcmarkt=16;
  25. elseif ($punktid==6) $id_pcmarkt=11;
  26. elseif ($punktid==10) $id_pcmarkt=15;
  27. elseif ($punktid==3) $id_pcmarkt=13;
  28. elseif ($punktid==2) $id_pcmarkt=8;
  29. else $id_pcmarkt=false;
  30.  
  31. mssql_select_db('mdm_baza', $link);
  32. $row_pc = mssql_fetch_array(mssql_query("SELECT * FROM dbo.Dok WHERE TypDok='52' AND MagId='$id_pcmarkt' AND Data='$date' AND Zmiana BETWEEN '$date_pcmarket_od' AND '$date_pcmarket_do' "));
  33. $razem_pcmarket=' - '.$row_pc['Razem'];
  34. if($row_pc['Razem']>10){
  35. $_SESSION["utarg_pcmarket"]='ok';
  36. $status_pcmarket='<div style="font-size: 20px; color:green; ">Aktualizacja kasy zakończona.</div>';
  37. } else {
  38. $status_pcmarket='<div style="font-size: 30px;">Brak danych z kasy za dzisiejszy dzień! Zaczekaj na aktualizacje!</div>';
  39. };
  40.  
  41. } else {
  42. $status_pcmarket='<div style="font-size: 20px; color:green; ">Aktualizacja kasy zakończona.</div>';
  43. };
  44. };


i potem wyświetlam zmienną $status_pcmarket, problem w tym że jeżeli status zmienia się to żeby zobaczyć zmiane trzeba odświeżyć strone, więc pomyślałem o js miało by to wyglądać tak że skrypt wykonuje się co 30s i najlepiej było by przerwanie sprawdzania statusu gdy zostanie spełniony ten warunek if($row_pc['Razem']>10) ale to nie jest niezbędne
zaworek
Do odświeżania strony możesz wykorzystać meta refresh
adi456
Myślałem o tym, ale nie chce to działać, biorąc pod uwage że gdy jest wyświetlany ten status są przesłane zmienne POST, pozatym nie chce żeby odświerzał sie cały ogromny skrypt tylko jego wyżej wymieniony kawałek
bostaf
To długi temat. Poczytaj o technologii AJAX:

Jak już będziesz wiedział o co biega to możesz skorzystać z gotowych rozwiązań, które w prosty sposób pozwolą zaimplementować AJAX na Twojej stronie. Bardzo popularna jest na przykład biblioteka jQuery, która oferuje bardzo przyjemną obsługę AJAXu.
adi456
znalazłem taki kod

  1. <script language=javascript>
  2.  
  3. var object = false;
  4. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  5. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  6. function getData(dataSource, divID)
  7. {
  8. if (object.readyState==4 || object.readyState==0)
  9. {
  10. var obj = document.getElementById(divID);
  11. object.open("GET", dataSource);
  12.  
  13. object.onreadystatechange = function()
  14. {
  15. if (object.readyState == 4 && object.status == 200)
  16. obj.innerHTML= object.responseText;
  17. }
  18. object.send(null);
  19. }
  20. }
  21. function odswiezaj()
  22. {
  23. getData('status.php','status_pcmarket');
  24. setTimeout("odswiezaj()", 30000);
  25. }
  26. </script>


tylko jak zamiast status.php wstawić bezpośrednio kod php, po to żeby widział zmienne wczesniej występujące?


np chodzi mi o to żeby to zadziałało:
  1. <? $test='działa'; ?>
  2.  
  3. <script language=javascript>
  4.  
  5. var object = false;
  6. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  7. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  8. function getData(dataSource, divID)
  9. {
  10. if (object.readyState==4 || object.readyState==0)
  11. {
  12. var obj = document.getElementById(divID);
  13. object.open("GET", dataSource);
  14.  
  15. object.onreadystatechange = function()
  16. {
  17. if (object.readyState == 4 && object.status == 200)
  18. obj.innerHTML= object.responseText;
  19. }
  20. object.send(null);
  21. }
  22. }
  23. function odswiezaj()
  24. {
  25. getData('status.php','status_pcmarket');
  26. setTimeout("odswiezaj()", 30000);
  27. }
  28.  
  29. <div id="status_pcmarket"></div>
  30.  


a w pliku status.php tresc
  1. <?
  2. if ($test=='działa') echo 'to naprawde działa';
  3. ?>


questionmark.gif
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.