Jquery 在Laravel route上的Ajax调用,该调用返回一个json编码的数组,其中包含ChartJS标签的日期
我有一个Laravel5.7项目,使用ajax和ChartJS 在页面加载时,我对“action\u route”进行ajax调用,它返回我的ChartJS的标签。php函数是json编码的标签数组,ajax对其进行解码Jquery 在Laravel route上的Ajax调用,该调用返回一个json编码的数组,其中包含ChartJS标签的日期,jquery,html,json,laravel,html-entities,Jquery,Html,Json,Laravel,Html Entities,我有一个Laravel5.7项目,使用ajax和ChartJS 在页面加载时,我对“action\u route”进行ajax调用,它返回我的ChartJS的标签。php函数是json编码的标签数组,ajax对其进行解码 function get_data($year) { $test = \DB::select( \DB::raw(" SELECT DATE_FORMAT(date_for,'%c/%y') AS 'month',
function get_data($year) {
$test = \DB::select( \DB::raw("
SELECT
DATE_FORMAT(date_for,'%c/%y') AS 'month',
col1,
col2,
col3
FROM test
WHERE
AND YEAR(date_for) = '" . $year . "'
GROUP BY month
ORDER BY month ASC
") );
return $test;
}
public function action_route() {
$data = self::get_data(2018);
foreach($data as $x) {
$labels[] = $x->month;
}
}
return view('/test/get_data', [
'labels' => json_encode($labels)
]);
DATE_格式(DATE_表示,'%c/%y')为'month',因为如果此格式为'01/18','02/18'等,我需要日期
在模板中:
var labels = JSON.parse('{{ $labels }}');
问题
这是get放入html的内容
当使用
{{}
时,laravel将转义它显示的数据。要阻止它转义数据,您应该将它包装在{!!!!}
中
var labels = JSON.parse('{!! $labels !!}');
有关更多信息,您可以查看图表现在显示,但它仍然不正常,我得到的标签有:“1%2B18”、“10%2B18”。我认为这是在HTML问题上的一种转换字符的方式。很抱歉之前的评论。我试着自己做的事情打破了它。感谢you@JohnDoe没关系,我很高兴能帮上忙。只是出于好奇,你为什么用原始的查询而不是雄辩的?您是否为
test
表设置了雄辩的模型?因为这是一个非常复杂的查询,不可能使用雄辩,这只是一个简单的示例,实际的查询非常庞大。(我有模型和控制器)@JohnDoe啊,很公平。