php - 数据表网 | 表 id=tbl_portfolio - 无效的 JSON 响应
问题描述
这是我在 stackoverflow.com 上的第一个问题:过去我在这里找到了很多答案,但现在我有一个无法解决的问题:我有一个项目,我使用 DataTables jquery 插件来显示来自一个简单的 SQL 数据库。一切正常,但数据库已经有大约 18K 条目,所以速度很慢。我正在尝试让 ajax 和服务器端处理正常工作,但我总是收到错误消息:“DataTables 警告:表 id=tbl_portfolio - 无效的 JSON 响应。有关此错误的更多信息,请参阅http://datatables.net/吨/1 "
我已经检查了链接,但我没有得到任何回应,所以我不能那样调试。我读了很多书并尝试了各种方法,但没有任何效果。
也许值得一提的是,DataTables 在 Wordpress 子主题中运行。
HTML 是:
<table id="tbl_portfolio" class="display nowrap" style="width:100%">
<thead>
<tr>
<th>URL</th>
<th>Themen</th>
<th>Keywords</th>
<th>Land</th>
<th>Kennzeichnung</th>
<th>Linkart</th>
<th>Ek Preis</th>
<th>Text inkl.</th>
<th>Text Preis</th>
<th>End Preis</th>
<th>Anmerkungen</th>
<th>Firma</th>
<th>Anrede</th>
<th>Vorname</th>
<th>Nachname</th>
<th>Strasse</th>
<th>Adresszusatz</th>
<th>PLZ</th>
<th>Ort</th>
<th>Land</th>
<th>eMail</th>
<th>Telefon</th>
</tr>
</thead>
<tfoot>
<tr>
<th>URL</th>
<th>Themen</th>
<th>Keywords</th>
<th>Land</th>
<th>Kennzeichnung</th>
<th>Linkart</th>
<th>Ek Preis</th>
<th>Text inkl.</th>
<th>Text Preis</th>
<th>End Preis</th>
<th>Anmerkungen</th>
<th>Firma</th>
<th>Anrede</th>
<th>Vorname</th>
<th>Nachname</th>
<th>Strasse</th>
<th>Adresszusatz</th>
<th>PLZ</th>
<th>Ort</th>
<th>Land</th>
<th>eMail</th>
<th>Telefon</th>
</tr>
</tfoot>
那是javascript部分:
// DB table to use
$table = 'portfolio_test';
// Table's primary key
$primaryKey = 'id';
// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = array(
array( 'db' => 'url', 'dt' => 0 ),
array( 'db' => 'themen', 'dt' => 1 ),
array( 'db' => 'keywords', 'dt' => 2 ),
array( 'db' => 'location', 'dt' => 3 ),
array( 'db' => 'kennzeichnung', 'dt' => 4 ),
array( 'db' => 'link_art', 'dt' => 5 ),
array( 'db' => 'preis_platz', 'dt' => 6 ),
array( 'db' => 'text_inkl', 'dt' => 7 ),
array( 'db' => 'preis_text', 'dt' => 8 ),
array( 'db' => 'preis_ek', 'dt' => 9 ),
array( 'db' => 'details', 'dt' => 10 ),
array( 'db' => 'firma', 'dt' => 11 ),
array( 'db' => 'anrede', 'dt' => 12 ),
array( 'db' => 'vorname', 'dt' => 13 ),
array( 'db' => 'nachname', 'dt' => 14 ),
array( 'db' => 'strasse', 'dt' => 15 ),
array( 'db' => 'adresszusatz', 'dt' => 16 ),
array( 'db' => 'plz', 'dt' => 17 ),
array( 'db' => 'ort', 'dt' => 18 ),
array( 'db' => 'land', 'dt' => 19 ),
array( 'db' => 'email', 'dt' => 20 ),
array( 'db' => 'telefon', 'dt' => 21 )
);
// SQL server connection information
$sql_details = array(
'user' => 'db_adm',
'pass' => '',
'db' => 'seo_metrics',
'host' => 'localhost:3306'
);
require 'ssp.class.php';
echo json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);
也许我在测试所有不同的东西时产生了一些新的错误,但我希望你们中的一些人能找到问题!
感谢你们!
解决方案
我今天遇到了同样的问题。这对我有用。在ssp.class.php中,替换
$db = @new PDO(
"mysql:host={$sql_details['host']};dbname={$sql_details['db']}",
$sql_details['user'],
$sql_details['pass'],
array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
);
和
$db = @new PDO(
"mysql:host={$sql_details['host']};dbname={$sql_details['db']}",
$sql_details['user'],
$sql_details['pass'],
array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' )
);
推荐阅读
- python - 如何在 Luigi 中获取所需先前任务输出的文件名
- javascript - Javascript:删除非 html 字符串中某些 HTML 标记的所有实例
- javascript - Express API 只返回对象的第一个键值对
- stm32 - 如何使用随附的原始 DEMO 代码重新编程 stm32F769 DISCO 板?
- javascript - v-model 到计算属性的动态绑定
- python - 为什么在kivy python中有两个图像(image.reload())?
- java - 我有一个错误说,标记上的语法错误,删除这些标记等等,你可以自己看看
- python - 如何在 python 中从 int64 创建标量索引?
- html - 我的徽标图像未在 Html 中正确显示
- java - 我如何用java在hdf5文件中写入这个对象