json_encode用html打印数据

时间:2018-09-15 15:27:55

标签: javascript php html ajax

我正在尝试使用Ajax(json_encode)将数据库表从PHP(使用面向对象的方法)传递给Javascript,这已成功完成。但是问题是,$ 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>

如果我想做的只是将其从PHP传递到javascript,是否可以防止回显json_encode以HTML格式打印数据?

1 个答案:

答案 0 :(得分:0)

尝试首先在product.php上发送json http标头

header('Content-Type: application/json');