我正在尝试使用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格式打印数据?
答案 0 :(得分:0)
尝试首先在product.php上发送json http标头
header('Content-Type: application/json');