[英]Loading Data from SQL into Tabulator
I want to load data from my SQL Table into Tabulator but I'm always receiving the AJAX Error: "parsererror"
, which is created by my ajax code: "console.log('my message: ' + err)"
.
有人可以帮助这个错误来自哪里以及如何解决它?
您可以在下面找到我使用的代码。
我的表定义如下:
var table = new Tabulator("#example-table", {
height:"311px",
layout:"fitColumns",
columns:[
{title:"Date", field:"Date", align:"center", sorter:"date", widthGrow:2},
{title:"Country", field:"Country"},
{title:"Onlineshop", field:"Onlineshop"},
{title:"Preis in € excl. MwSt.", field:"Onlineprice_euro", align:"right", sorter:"number"},
{title:"Onlineshop_URL", field:"Shop_url", widthGrow:2},
],
});
我正在使用以下 ajax 请求加载数据:
$.ajax({
url:"fetch_onlinepricetable.php",
method:"POST",
data:{ean:ean},
dataType:"JSON",
success:function(data)
{
table.setData(data);
},
error: function(req, err){ console.log('my message: ' + err);}
});
我用于加载数据的 PHP function 如下:
<?php
$servername = "####";
$username = "####";
$password = "####";
$dbname = "####";
$con=mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT Country,Onlineshop,Shop_url,Date,Onlineprice_euro FROM onlineprices WHERE EAN = '" . $_POST["ean"]. "'";
$result = $query_id = mysqli_query($con, $sql);
foreach($result as $row)
{
$data[] = array(
'Date' => $row["Date"],
'Country' => $row["Country"],
'Onlineshop' => $row["Onlineshop"],
'Onlineprice_euro' => $row["Onlineprice_euro"],
'Shop_url' => $row["Shop_url"]
);
};
echo json_encode($data,JSON_UNESCAPED_UNICODE);
?>
非常感谢您的帮助!
根据您的图片(您在评论部分提供),您的 PHP 脚本返回空响应,这就是您收到parseError
的原因。
在这里,我已将连接mysqli_connect
更改为new mysqli
并处理空数据...请查看
<?php
$servername = "####";
$username = "####";
$password = "####";
$dbname = "####";
$con=new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($con->connect_error)
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT Country,Onlineshop,Shop_url,Date,Onlineprice_euro FROM `onlineprices` WHERE EAN = '" . $_POST["ean"]. "'";
$result = $query_id = $con->query($sql);
//checking for empty
if ($result->num_rows > 0) {
// if not empty
$data = [];
//push each record in array $data
foreach($row = $result->fetch_assoc())
{
$temp_array = [
'Date' => $row["Date"],
'Country' => $row["Country"],
'Onlineshop' => $row["Onlineshop"],
'Onlineprice_euro' => $row["Onlineprice_euro"],
'Shop_url' => $row["Shop_url"]
];
array_push($data, $temp_array);
// you can use $row directly instead of $row if it has no extra data.
};
echo json_encode($data,JSON_UNESCAPED_UNICODE);
} else {
// return empty
echo '[]';
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.