我正在尝试根据php数据库查询的结果构建一个javascript数组,以便在flot中使用。
当我输出数字($ lic->用户)时,它很好,但每当我尝试输出字符串时,我在浏览器中都会得到一个完全空白的页面。
我试过了:
{{ $lic->CompanyName }}
"<?php echo $lic->CompanyName; ?>"
{{{ $lic->CompanyName }}}
'"'+ <?php echo $lic->CompanyName; ?> +'"'
但是当我对其进行硬编码(比如说'CompanyName')时,它会构建条形图(并显示页面)。
var data =
[
@foreach($licdata as $lic)
{
'label': "{{ $lic->CompanyName }}",
'data': [
["{{ $lic->CompanyName }}", {{ $lic->Users }}],
["{{ $lic->CompanyName }}", {{ $lic->Emps }}]
]
},
@endforeach
];
我认为它必须与引用/转义js中的字符串有关,但我无法解决什么,有谁知道正确的语法是什么?
答案 0 :(得分:4)
更好的解决方案
在后端
将数据结构化为数组,关联或以其他方式。
然后返回。
return view( 'view_required',[
'my_var'=> json_encode($array_or_object, JSON_UNESCAPED_SLASHES );
]);
在前面
<script>
var my_var = {!! $my_var !!};
</script>
快乐的编码。
答案 1 :(得分:0)
这是我的错,我最终使用了:
"<?php echo $lic->CompanyName ?>"
一旦我纠正了潜在的问题(一个区分大小写的问题),{{ $lic->CompanyName }}
也会起作用。
使用Fiddler(我不能推荐得足够高)我发现空白的浏览器页面(只是一个白页)是由我的页面中返回以下内容引起的:
var data =
[
@foreach($licdata as $lic)
{
'label': "<!DOCTYPE html
<html>
<head>
然后加载html(head标签,meta标签,css等......)。
这是我的SQL中字段名称(Companyname)的结果略有不同的结果 MS SQL Server并不关心这种情况,PHP确实如此(Companyname vs CompanyName)!
一旦php / laravel从结果集中创建了对象,字段名就会成为属性,当你访问它们时,它们必须匹配以防万一。
总是检查PHP变量/对象的大小写,特别是如果框架将它们从记录自动转换为对象(或类似的东西)。