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

Jak przesłać JSON z klasy php do AJAX

Object Storage Arubacloud
0 głosów
391 wizyt
pytanie zadane 12 kwietnia 2017 w PHP przez amiluke Obywatel (1,120 p.)
edycja 12 kwietnia 2017 przez amiluke

Mam problem z przesyłaniem danych JSON z klasy php do AJAXA. Problem w tym, że gdy używam zwykłego pliku php wszystko działa poprawnie:

<?php
header("Content-Type: application/json; charset=UTF-8");
$pdo = new PDO('mysql:host=localhost;dbname=database', 'root', '');
$pdo -> query ('SET NAMES utf8');
$pdo -> query ('SET CHARACTER_SET utf8_unicode_ci');
$stmt = $pdo->prepare("SELECT id, name FROM table");
$stmt->execute();
$stmt = $stmt->fetchAll(PDO::FETCH_CLASS);

echo json_encode($stmt);
?>
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myObj = JSON.parse(this.responseText);
      console.log(myObj);
      document.getElementById("par").innerHTML = myObj[4].id;
    }
};
xmlhttp.open("GET", "http://localhost/project/app/models/json.php", true);
xmlhttp.send();

ale jeżeli spróbuje pobrać dane z bazy danych w kontrolerze w silexie:

namespace AI\models;
use Silex\Application;
use Silex\Api\ControllerProviderInterface;

class Ajax implements ControllerProviderInterface
{
  public function connect(Application $app){
    $controllers = $app['controllers_factory'];
    $controllers->get('/', 'AI\models\Ajax::home');
    return $controllers;
  }

  public function home(Application $app){
    header("Content-Type: application/json; charset=UTF-8");
    $result  = $app['db']->prepare("SELECT id, name FROM table");
    $result->execute();
    $result = $result->fetchAll(\PDO::FETCH_CLASS, \AI\models\Ajax::class);
    echo json_encode($result);

    return $app['twig']->render('ajax.twig');
  }

}
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myObj = JSON.parse(this.responseText);
      console.log(myObj);
      document.getElementById("par").innerHTML = myObj[4].id;
    }
};
xmlhttp.open("GET", "http://localhost/project/app/models/Ajax.php", true);
xmlhttp.send();

Błąd w konsoli: Uncaught SyntaxError: Unexpected token < in JSON at position 0
    at JSON.parse (<anonymous>)
    at XMLHttpRequest.xmlhttp.onreadystatechange (main.js:5)

Znając życie rozwiązanie jest proste ale już za długo mnie zatrzymuje ten problem dlatego proszę o pomoc jak ktoś wie jak sobie z tym poradzić.

1 odpowiedź

–1 głos
odpowiedź 12 kwietnia 2017 przez mtk3d Nałogowiec (46,690 p.)
komentarz 12 kwietnia 2017 przez amiluke Obywatel (1,120 p.)
nic mi to nie dało

Podobne pytania

0 głosów
1 odpowiedź 176 wizyt
pytanie zadane 10 marca 2016 w JavaScript przez ormu16 Gaduła (4,980 p.)
0 głosów
1 odpowiedź 352 wizyt
pytanie zadane 8 stycznia 2021 w PHP przez wizarddos Nałogowiec (25,930 p.)
0 głosów
1 odpowiedź 296 wizyt
pytanie zadane 16 sierpnia 2022 w PHP przez Doge Gaduła (3,370 p.)

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 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!

...