• 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?

VPS Starter Arubacloud
0 głosów
1,465 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 552 wizyt
pytanie zadane 15 marca 2018 w JavaScript przez marcolo Obywatel (1,530 p.)
0 głosów
0 odpowiedzi 345 wizyt
pytanie zadane 19 listopada 2016 w PHP przez misiek.sz Bywalec (2,050 p.)
0 głosów
1 odpowiedź 273 wizyt
pytanie zadane 30 czerwca 2020 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...