• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP/JS i JSON - pobieranie tablicy php?

Object Storage Arubacloud
0 głosów
1,509 wizyt
pytanie zadane 17 stycznia 2017 w JavaScript przez Tpk Nałogowiec (40,100 p.)

Witajcie! Ostatnio dostałem za zadanie zrobić skrypt odpytujący serwer gry z danych takich jak mapa, liczba graczy itp. Znalazłem więc bibliotekę która zajmuje się czymś takim - http://gameq.sourceforge.net/

Można tam w prosty sposób pobrać te dane z serwera:

<?php

require_once 'GameQ.php';

$servers = array(
'lss' => array('mta', '000.00.000.000',20535),
);

$gq = new GameQ();
$gq->addServers($servers);
$gq->setOption('timeout', 500);
$gq->setFilter('normalise');

$results = $gq->requestData();
echo'<pre>';
print_r($results);

?>

Jednak ja potrzebuje te wyprintowane dane upchnąć w json i po drugiej stronie pobierać załóżmy w interwale co 5 sekund. Nie za bardzo wiem jak to zrobić aby pobierać te dane i czy ta biblioteka odświeża je co jakiś czas czy pobiera na bieżąco.

<!DOCTYPE html>
<html lang="en">
<head>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
</head>
<body>
  <div id="modal"></modal>
<script>
  $(document).ready(function() {
     setInterval(function() {
        //CODE
     }, 5000);
  });
</script>
</body>
</html>

Po stronie php wiem, że trzeba zrobić coś takiego:

json_encode($results);

Jednak co dalej...

Natomiast w skrypcie zdaje się tak:

        $.ajax({
          type: 'POST',
          url: "core.php",
          data: json,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(data){
            $('#modal').html(data);
          }
        });

Mimo to dalej nie mam pojęcia jak to ze sobą połączyć żeby działało.

Z js/php jest mega początkującym (składnie niby znam) ale i tak napisać coś to dramat.

Jeżeli ktoś ma jakieś pomysły chętnie wysłucham ;)

 

1 odpowiedź

0 głosów
odpowiedź 17 stycznia 2017 przez Fenix Nałogowiec (26,750 p.)
wybrane 17 stycznia 2017 przez Tpk
 
Najlepsza

Musisz po pierwsze odkodować przesłanego JSON'a po otrzymaniu możesz to zrobić za pomocą:

 JSON.parse();

Gdy już to zrobisz, otrzymasz tablice obiektów. Nastepna rzeczą którą bedziesz musiał wykonać są to operacje na DOM, aby w logiczny sposób zwizualizować sobie JSONa.

Informacje które pewnie Ci sie przydaja: Template literalsJson ParseAppend ChildCreate ElementQuery Selector

 

Powodzenia, w razie pytań pisz.

 

komentarz 17 stycznia 2017 przez Tpk Nałogowiec (40,100 p.)

Ok zrobiłem to jednak trochę inaczej:

<script>
$(document).ready(function() {

function repeatMe(){
  var xml = new XMLHttpRequest();

  xml.open("POST", "core.php", true);
  xml.onreadystatechange = function() {
      if ( xml.readyState == 4 && (xml.status >= 200 && xml.status < 300 || xml.status == 304 || navigator.userAgent.indexOf("Safari") >= 0 && typeof r.status == "undefined")) {
          if (xml.responseText) {
              var change = JSON.parse(xml.responseText);
              //console.log(change);
              //document.querySelector("#modal").innerHTML = change['num_players'];
          }
          xml = null;
      }
  };
  xml.send();
}

setInterval(repeatMe, 5000);

});
</script>

 

Ale dalej nw tym razem jak z tablicy obiektów wyciągnąć poszczególne wartości.

komentarz 17 stycznia 2017 przez Fenix Nałogowiec (26,750 p.)

A jak działa sie na tablicy obiektów? obiekt[indeks].wartosc

komentarz 17 stycznia 2017 przez Tpk Nałogowiec (40,100 p.)

A dobra ;) Dzięki wielkie - po prostu zapomniałem o nazwie tego obiektu.

document.querySelector("#modal").innerHTML = change['lss']['num_players'];

I już śmiga aż miło. Mam tylko nadzieje, że łączenie się w ten sposób czyli poprzez XMLrequest bedzie stosunkowo bezpieczne bo różne rzeczy o tym słyszałem.

komentarz 17 stycznia 2017 przez Fenix Nałogowiec (26,750 p.)

A tam słyszeć czy nie lepiej byłoby samemu sie dowiedzieć jak to działa? Można zacząć np od przeczytania tego.

Podobne pytania

0 głosów
0 odpowiedzi 558 wizyt
pytanie zadane 15 marca 2018 w JavaScript przez marcolo Obywatel (1,530 p.)
0 głosów
0 odpowiedzi 362 wizyt
pytanie zadane 19 listopada 2016 w PHP przez misiek.sz Bywalec (2,050 p.)
0 głosów
1 odpowiedź 275 wizyt
pytanie zadane 30 czerwca 2020 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)

92,555 zapytań

141,402 odpowiedzi

319,552 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...