繁体   English   中英

将数据从 SQL 加载到制表器中

[英]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);
?>

非常感谢您的帮助!

根据你评论部分的截图。 响应控制台错误

您收到的是 object 而不是数组...要将其转换为 object 的数组,

在你 php 换行

echo json_encode($data,JSON_UNESCAPED_UNICODE);

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM