Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][PHP] jak pobrać dane po odświeżeniu strony z innego pliku
pawel06281990
post 9.05.2024, 10:16:28
Post #1





Grupa: Zarejestrowani
Postów: 291
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Witam,

Mam skrypt, który obsługuje odświeżanie i dodawanie przez div nowych informacji, ale nie wiem, jak wyciągnąć z php żeby mi się wyświetliła nowa informacja.

  1. <script type="text/javascript">
  2. function ajaxObject()
  3. {
  4. if(window.ActiveXObject)
  5. {
  6. var request = new ActiveXObject("Microsoft.XMLHTTP");
  7. return request;
  8. }
  9. else if(window.XMLHttpRequest)
  10. {
  11. var request = new XMLHttpRequest();
  12. return request;
  13. }
  14. else
  15. {
  16. alert("Twoja przeglądarka nie wspiera AJAX!");
  17. return false;
  18. }
  19. }
  20. var licz = 0;
  21. var prezenter = "";
  22. function update_all()
  23. {
  24. request = ajaxObject()
  25. request.open("get", "/content/theme/templates/staty.php?mode=ok&ip='.$userdata['ip_serwer'].'&port='.$userdata['port_serwera'].'&version='.$userdata['wersja_serwer'].'&" + (new Date()).getTime(), true);
  26. request.onreadystatechange = function()
  27. {
  28. if(request.readyState == 4){
  29. licz+=1;
  30. var scInfo = request.responseText.split("\n");
  31.  
  32. document.getElementById("prezenter").innerHTML = scInfo[0];
  33. document.getElementById("audycja").innerHTML = scInfo[1];
  34. document.getElementById("sluchaczy").innerHTML = scInfo[2];
  35. document.getElementById("piosenka").innerHTML = scInfo[6];
  36. if(prezenter !== scInfo[0]){
  37. if(prezenter !== "")
  38. {
  39. if(scInfo[0] == null || scInfo[0] == "undefined")
  40. notifyMe("Błąd","Brak połączenia z panelem radiowym!");
  41. else if(scInfo[0] !== "Brak")
  42. notifyMe(scInfo[0],"Prowadzi teraz audycję");
  43. else
  44. notifyMe("Informacja","Aktualnie nikt nie nadaje!");
  45. }
  46. prezenter = scInfo[0];
  47. pop1 = 1;
  48. } else {
  49. pop1 = 0;
  50. }if(licz >= 15 && pop1 !== 1)
  51. {
  52. notifyMe("Informacja","Aktualna liczba słuchaczy: " + scInfo[2]);
  53. licz = 0;
  54. }
  55. }
  56. }
  57. request.send(null);
  58. setTimeout("update_all();", 20000);
  59. }
  60. setTimeout("update_all();", 20000);


A konsola jak sprawdzam to console.log(scInfo); pokazuje mi w array() takie informację
  1. Array [ "Radio MixWave" ]


i teraz jak robić, żeby mi się pojawiło to w taki sposób ze pokarze się wszystko pod innym numerkiem

scInfo[0];
scInfo[1];
scInfo[2];
itd

Walczę z tym już kolejne dni i nie mogę już chyba wszystkiego próbowałem, proszę pomórzcie mi.
Go to the top of the page
+Quote Post
nospor
post 9.05.2024, 10:19:17
Post #2





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




nic nie kumam. Pokazujesz jakis kod js ktory sle ajaxa, ale kod ktory generuje zwrotke dla ajaxa to juz nie. wiec skad mamy wiedziec co ten kod php zle robi?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post 9.05.2024, 10:27:40
Post #3





Grupa: Zarejestrowani
Postów: 291
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Kod którego używam to ten

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_URL, 'https://'.$_GET['ip'].':'.$_GET['port'].'/stats?sid=1&json=1');
  3. curl_setopt($ch, CURLOPT_HEADER, 0);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5. curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  6. $curl_exec = curl_exec($ch);
  7. $stats = json_decode($curl_exec);
  8. curl_close($ch);


A Pobieram zapytania tak

  1. echo $stats->servertitle;
  2. echo $stats->currentlisteners;


Ale skrypt łączy to w jedno i mam coś takiego

  1. Array [ "Gra Autopilot JanekRadio MixWave" ]
  2. &#8203;
  3. 0: "Gra Autopilot JanekRadio MixWave"
  4. &#8203;


A powinno wyglądać tak
  1. Array [ "Gra Autopilot Janek" ],["Radio MixWave"]
  2. &#8203;
  3. 0: "Gra Autopilot Janek",
  4. 1: "Radio MixWave",


Ten post edytował pawel06281990 9.05.2024, 10:29:11
Go to the top of the page
+Quote Post
nospor
post 9.05.2024, 10:31:39
Post #4





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




jak chcesz miec tablice na zwrotce, to masz wysylac JSON cos ala


$data = ['twoja', 'tablica','z danymi'];
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data);

a kod JS ma potem tego JSON oderbac (https://www.geeksforgeeks.org/how-to-get-json-response-in-ajax/). I po sprawie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post 9.05.2024, 11:14:32
Post #5





Grupa: Zarejestrowani
Postów: 291
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Zrobiłem jak mówiłeś, ale coś niedziła mam coś takiego w konsoli przeglądarki

Array [ '["Gra Autopilot Janek","Radio MixWave"]' ]

A zrobiłem to tak

  1. $ch = curl_init();
  2. curl_setopt($ch, CURLOPT_URL, 'https://'.$_GET['ip'].':'.$_GET['port'].'/stats?sid=1&json=1');
  3. curl_setopt($ch, CURLOPT_HEADER, 0);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5. curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  6. $curl_exec = curl_exec($ch);
  7. $stats = json_decode($curl_exec);
  8. curl_close($ch);
  9.  
  10.  
  11. $staty_radia =[$stats->servergenre,$stats->servertitle];
  12. header('Content-Type: application/json; charset=utf-8');
  13. echo json_encode($staty_radia);


Domyślam się ze coś źle??
Go to the top of the page
+Quote Post
nospor
post 9.05.2024, 11:31:24
Post #6





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




no ale kod JS tez musisz dostosowac do odbioru JSON, powiedziec ze spodziewasz sie JSON itp. Podalem ci linka do przykladu jak to jest robione

no i przedewszystkim juz masz nie dzeilic zwrotki przez nowe linie

To wypada
var scInfo = request.responseText.split("\n");

bo twoj kod to juz JSON. W linku masz przyklad jak odebraz ten JSON


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel06281990
post 9.05.2024, 13:03:11
Post #7





Grupa: Zarejestrowani
Postów: 291
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Dzięki za pomoc zrobiłem tak jak powinno być wielkie dzięki za podpowiedź.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.05.2024 - 21:19