json_encode печатает данные в html - PullRequest
       1

json_encode печатает данные в html

0 голосов
/ 15 сентября 2018

Я пытаюсь передать таблицу базы данных из PHP (используя объектно-ориентированный подход) в Javascript, используя Ajax (json_encode), что я успешно сделал. Проблема, однако, заключается в том, что значения, которые находятся внутри переменной $ data, печатаются в моем теге body с огромным пробелом после него.

Сторона сервера:

<?php
require_once "Database.php";
Class Product extends Database
{  
    public function getAllProducts(){
    $sql = $this->connectDB()->query("SELECT * FROM product");

    while($row = $sql->fetch()) {
            $data[] = $row;
    }
    echo json_encode($data);        
}
}

$p = new Product();
$p->getAllProducts();
?>

Клиентская сторона:

$(function() {
    getProductData();
});

function getProductData(){
    $.ajax({
        url: "Product.php",
        type: "get",
        dataType: "json",
        success: successAjax,
        error: errorAjax,
        complete: function(xhr, status) {
            console.log(xhr);
            console.log(status);
        }
    });
}
function successAjax($jsonarray){
    console.log($jsonarray);
}

Вывод (обратите внимание, что теги body не выводятся):

<body>
    "[{"id":"1","0":"1","name":"john","1":"john"}, 
     {"id":"2","0":"2","name":"bob","1":"bob"}]"
</body>

Можно ли как-нибудь запретить эхо json_encode печатать данные в HTML, если все, что я хочу сделать, это передать их из PHP в javascript?

1 Ответ

0 голосов
/ 15 сентября 2018

Попробуйте отправить HTTP-заголовок json на первое место на product.php

header('Content-Type: application/json');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...