我有以下JSON字符串,当通过jQuery AJAX调用从HTML文件调用时,我通过echo从PHP文件传递。
该字符串包含HTML,该HTML被送入DataTables单元格。返回的JSON似乎将</
解释为换行符,因为它插入了ASCII 10和13(每个文本到ASCII转换网站),这导致DataTables将其视为无效的JSON。
我不清楚是什么产生错位的ASCII。
HTML(DataTables加载):
var mydatatable = $("#myassets").DataTable(
{
"ajax": "../php/fetchmydata.php",
"type": "POST",
"dataType": "json",
"columns": [
{"data":"teamName","width":"30%"},
{"data":"teamImg","width":"20%"},
{"data":"cluesFoundCount","width":"5%"},
{"data":"assets","width":"30%"},
{"data":"scores","width":"5%"}
]
});//end dataTable
PHP(fetchmydata.php):
$myjson = '{"teamName":"<div class=\'teamblock\'><span class=\'bold\'>' . $row['TeamName'] . '</span><div>rick</div></div>"';
$myjson.='}';
echo '{"data":[' . $myjson . ']}';
return $myjson;
答案 0 :(得分:0)
您需要使用json_encode来避免错误。
请改用以下代码:
$data = array(
"data" => array(
array(
"teamName" =>
'<div class="teamblock"><span class="bold">' .
$row['TeamName'] .
'</span><div>rick</div></div>',
"teamImg" => "",
"cluesFoundCount" => "",
"assets" => "",
"scores" => ""
)
)
);
echo json_encode($data);
但是为避免通过Ajax传递大量数据,建议使用columns.render选项在客户端生成HTML。
答案 1 :(得分:-1)
<div>
标记生成ASCII 10和13.我将div
更改为span
,并且JSON正确呈现。